Vlad Brezae [Sat, 29 Aug 2015 01:04:48 +0000 (18:04 -0700)]
Merge pull request #2005 from BrzVlad/feature-concurrent-work
Concurrent sgen improvements
Vlad Brezae [Thu, 27 Aug 2015 21:33:38 +0000 (14:33 -0700)]
[sgen] Add missing write barriers for the concurrent collector
Vlad Brezae [Wed, 26 Aug 2015 20:47:14 +0000 (13:47 -0700)]
[sgen] Major allocation should not happen while we sweep
Vlad Brezae [Mon, 17 Aug 2015 22:50:35 +0000 (15:50 -0700)]
[sgen] Enable cementing for concurrent collector
Vlad Brezae [Mon, 24 Aug 2015 22:35:08 +0000 (15:35 -0700)]
[sgen] Remove the finishing nursery collection within the concurrent collector
Vlad Brezae [Tue, 25 Aug 2015 19:38:03 +0000 (12:38 -0700)]
[sgen] Clear nursery at gc if we are doing concurrent checks
Vlad Brezae [Thu, 27 Aug 2015 23:44:50 +0000 (16:44 -0700)]
[sgen] Fix scanning of invalid entries within arrays
Zoltan Varga [Fri, 28 Aug 2015 19:55:08 +0000 (15:55 -0400)]
Merge pull request #2007 from madewokherd/imagelock
Fix an unlock without a corresponding lock.
Vincent Povirk [Fri, 28 Aug 2015 19:33:58 +0000 (14:33 -0500)]
Fix an unlock without a corresponding lock.
8eeb2cef moved the lock into an if statement.
This commit is licensed as MIT/X11.
Zoltan Varga [Fri, 28 Aug 2015 19:39:25 +0000 (15:39 -0400)]
[runtime] Remove some dead code.
Vlad Brezae [Fri, 14 Aug 2015 02:03:17 +0000 (19:03 -0700)]
[sgen] Flush after writing the protocol entry
Marcos Henrich [Fri, 28 Aug 2015 15:26:28 +0000 (16:26 +0100)]
Merge pull request #2004 from esdrubal/singlestacktrace
[corlib] Changes StackTrace.ToString to use Exception format.
Marcos Henrich [Fri, 28 Aug 2015 11:51:13 +0000 (12:51 +0100)]
[corlib] Changes StackTrace.ToString to use Exception format.
StackTrace.ToString format was different from Exception.ToString.
StackTrace.ToString had an identation of 3 spaces instead of 2, outputed
"line " before the line number which Exception.ToString does not, and it
did not print offsets.
This change allows StackTrace.ToString output to be used by the mono-symbolicate tool.
Marcos Henrich [Fri, 28 Aug 2015 14:26:35 +0000 (15:26 +0100)]
Test mono-symbolicate with StackTrace.ToString.
We were testing mono-symbolicate tool with Exception.Tostring stack
traces but now we also test that the tool works with StackTrace.ToString.
Martin Baulig [Fri, 28 Aug 2015 14:06:22 +0000 (16:06 +0200)]
Merge pull request #2000 from BogdanovKirill/master
Bug fix: reading of infinite web response can lead to connection loss
Marek Habersack [Fri, 28 Aug 2015 13:18:47 +0000 (15:18 +0200)]
Remove stray ifdef
Marcos Henrich [Fri, 28 Aug 2015 12:21:00 +0000 (13:21 +0100)]
Merge pull request #2003 from esdrubal/seq_test_fix2
[runtime] Fix test_op_il_seq_point in amd64.
Marcos Henrich [Fri, 28 Aug 2015 11:39:03 +0000 (12:39 +0100)]
Target test-local in mono-symbolicate Makefile.
mono-symbolicate tests were not called by recursive test due to not having the
target test-local in its Makefile.
Marcos Henrich [Thu, 20 Aug 2015 10:27:02 +0000 (11:27 +0100)]
[runtime] Fix test_op_il_seq_point in amd64.
In amd64 when possible 32bit instructions and registers are usedi
instead of 64bit ones.
Using MONO_DEBUG=single-imm-size avoids 32bit optimizations thus
maintaining the native code size between compilations.
Marcos Henrich [Wed, 19 Aug 2015 19:05:42 +0000 (20:05 +0100)]
[runtime] Added MONO_DEBUG=single-imm-size.
In amd64 when i8const are use with values within the first 32 bits
instructions and registers used can be optimized to their 32 bit
versions.
Setting MONO_DEBUG=single-imm-size variable disables such optimizations
and guarantee that the the generated native code size is independent
of the i8const values.
Marek Safar [Fri, 28 Aug 2015 07:30:01 +0000 (09:30 +0200)]
[mcs] Bump ikvm to support up to 4GB output files
Zoltan Varga [Thu, 27 Aug 2015 20:15:01 +0000 (16:15 -0400)]
[gsharedvt] Disable the box+brtrue optimization for gsharedvt types. Fixes #33324.
Jonathan Pryor [Thu, 27 Aug 2015 20:05:41 +0000 (16:05 -0400)]
[MonoPosixHelper] Fix compilation for Android.
The Android NDK decalres the `struct timeval` struct in <sys/time.h>.
Update sys-socket.c to #include <sys/time.h> to fix compilation
with the Android NDK.
Zoltan Varga [Thu, 27 Aug 2015 19:52:10 +0000 (15:52 -0400)]
Fix the build.
Zoltan Varga [Thu, 27 Aug 2015 19:46:32 +0000 (15:46 -0400)]
[x86] Fix fullaot support.
Rodrigo Kumpera [Thu, 27 Aug 2015 19:21:40 +0000 (15:21 -0400)]
[coop] Fix the public coop api.
Rodrigo Kumpera [Thu, 27 Aug 2015 19:10:10 +0000 (15:10 -0400)]
[coop] Blacklist two more wrappers when generating safepoints.
A GC Safepoint require the thread to be in GC unsafe mode to run properly.
Both mono_threads_finish_blocking and mono_threads_reset_blocking_start are called
in GC Safe mode, which would cause them to assert in checked-build.
mono_threads_finish_blocking is called after a pinvoke finished, which means the thread will
still be in blocking mode.
mono_threads_reset_blocking_start is called by reverse pinvoke wrappers before calling managed
code, so it will be in blocking mode too.
This looks like something checked-build should catch by setting the polling variable more frequently.
Rodrigo Kumpera [Thu, 27 Aug 2015 19:08:38 +0000 (15:08 -0400)]
[JIT] Prefer gdb over lldb on OSX as the later still produces useless output on my system.
Jonathan Pryor [Thu, 27 Aug 2015 18:08:47 +0000 (14:08 -0400)]
Merge pull request #1993 from steffen-kiess/posix-sockets-1
Add socket-related functions and data structures to Mono.Posix
Marcos Henrich [Thu, 27 Aug 2015 16:20:12 +0000 (17:20 +0100)]
Merge pull request #2002 from mono/revert-1991-seq_test_fix
Revert "[runtime] Fix test_op_il_seq_point in amd64."
Marcos Henrich [Thu, 27 Aug 2015 16:03:27 +0000 (17:03 +0100)]
Revert "[runtime] Fix test_op_il_seq_point in amd64."
Marcos Henrich [Thu, 27 Aug 2015 16:03:07 +0000 (17:03 +0100)]
Merge pull request #2001 from esdrubal/get_module_filename
Fixes get_module_filename.
Marcos Henrich [Thu, 27 Aug 2015 14:30:25 +0000 (15:30 +0100)]
Fixes get_module_filename.
Marcos Henrich [Thu, 27 Aug 2015 13:21:54 +0000 (14:21 +0100)]
Merge pull request #1991 from esdrubal/seq_test_fix
[runtime] Fix test_op_il_seq_point in amd64.
Rodrigo Kumpera [Wed, 26 Aug 2015 22:22:08 +0000 (18:22 -0400)]
[coop] Initial drop of the supporting public API.
Rodrigo Kumpera [Wed, 26 Aug 2015 22:06:43 +0000 (18:06 -0400)]
[corlib] Fix the mobile test suite.
triton [Wed, 26 Aug 2015 22:27:05 +0000 (23:27 +0100)]
[threadpool-io] Fixed the Windows backend to call the correct polling function.
Mark Probst [Wed, 26 Aug 2015 20:07:29 +0000 (13:07 -0700)]
[sgen] Don't access LOS object size directly because it has to be masked.
We use the lowest bit in the LOS object size to denote whether the object is
marked/pinned, so we can't directly use the size. Use the getter function
instead.
Zoltan Varga [Wed, 26 Aug 2015 19:56:42 +0000 (15:56 -0400)]
[sdb] Disallow nested invokes.
Alex Rønne Petersen [Wed, 26 Aug 2015 19:54:04 +0000 (21:54 +0200)]
Merge pull request #1999 from rodrmoya/master
Fix format description for TYPE_CONTEXT
Rodrigo Moya [Wed, 26 Aug 2015 16:21:08 +0000 (18:21 +0200)]
Fix format description for TYPE_CONTEXT
Zoltan Varga [Wed, 26 Aug 2015 18:47:24 +0000 (14:47 -0400)]
[llvm] Implement support for GC_SAFE_POINT.
Marcos Henrich [Wed, 26 Aug 2015 10:02:42 +0000 (11:02 +0100)]
[corlib] Fixes test not compiling with older NUnit.
BogdanovKirill [Tue, 18 Aug 2015 09:32:25 +0000 (14:32 +0500)]
[WebConnectionStream] Fix connection loss for >2GB reads
When HttpWebRequest is used to download infinite (ContentLength not set) response from web server, we can see that after reading about 2 GB (Int32.MaxValue) of data, totalRead variable can be equal to contentLength (which is int32.MaxValue). Then WebConnectionStream thinks that all data is received (see soft condition totalRead >= contentLength), but this is not correct.
This change is released under the MIT license.
Rodrigo Kumpera [Tue, 25 Aug 2015 21:07:08 +0000 (17:07 -0400)]
Merge pull request #1998 from BillSeurer/master
Fix coding error with ! operator in two places in libtest.c
Bill Seurer [Tue, 25 Aug 2015 21:00:04 +0000 (16:00 -0500)]
Fix coding error with ! operator in two places.
Martin Baulig [Tue, 25 Aug 2015 12:52:31 +0000 (14:52 +0200)]
Merge pull request #1992 from BogdanovKirill/ChunkedReading
[ChunkStream] CPU and memory leak fix when writing and reading infinitely
Zoltan Varga [Mon, 24 Aug 2015 22:22:10 +0000 (18:22 -0400)]
Merge pull request #1996 from BillSeurer/master
[ppc] Add MonoContext and asynch callback support
Bill Seurer [Mon, 24 Aug 2015 22:10:36 +0000 (17:10 -0500)]
[ppc] Add MonoContext and asynch callback support
Zoltan Varga [Mon, 24 Aug 2015 20:25:44 +0000 (16:25 -0400)]
[runtime] Remove the is_mb_open field from MonoMethod, it doesn't seem to be needed, inflated MethodBuilders are represented by MethodOnTypeBuilderInst objects.
Zoltan Varga [Mon, 24 Aug 2015 20:19:30 +0000 (16:19 -0400)]
[sdb] Remove the code which stopped single stepping when exiting a runtime invoke, it was only enabled on ios/android, and it doesn't seem to be needed anymore.
Ludovic Henry [Thu, 13 Aug 2015 19:10:15 +0000 (16:10 -0300)]
[threadpool-io] Remove unecessary operation change
These 2 operations are going to be treated the same in managed, so the change is useless
Ludovic Henry [Thu, 13 Aug 2015 19:09:31 +0000 (16:09 -0300)]
[threadpool-io] Add log tracing
Ludovic Henry [Thu, 13 Aug 2015 17:55:28 +0000 (14:55 -0300)]
[threadpool-io] Rework backend API
The main change is the fd will not be removed from the backend when there is no event to poll, but only when we close the socket. This also reduce the number of functions of the backend.
Ludovic Henry [Wed, 12 Aug 2015 15:24:12 +0000 (12:24 -0300)]
[threadpool-io] Move the states table to the selector thread exclusively
This greatly simplify the model of the states as we do not need to worry about modifications in different threads.
Ludovic Henry [Thu, 13 Aug 2015 14:11:59 +0000 (11:11 -0300)]
[threadpool-io] Disable AIO by default
Rodrigo Kumpera [Mon, 24 Aug 2015 14:51:26 +0000 (10:51 -0400)]
[coop] Add some TODOs to the stress test suite.
Steffen Kieß [Mon, 24 Aug 2015 17:42:54 +0000 (19:42 +0200)]
Add socket-related functions and data structures to Mono.Posix
This commit adds those socket-related functions which do not require the
sockaddr_* structures or the msghdr structure.
Rodrigo Kumpera [Mon, 24 Aug 2015 16:03:44 +0000 (12:03 -0400)]
Merge pull request #1989 from esdrubal/local_tz_from_link
Local tz id from symbolic link
Marcos Henrich [Thu, 20 Aug 2015 10:27:02 +0000 (11:27 +0100)]
[runtime] Fix test_op_il_seq_point in amd64.
In amd64 when possible 32bit instructions and registers are usedi
instead of 64bit ones.
Using MONO_DEBUG=single-imm-size avoids 32bit optimizations thus
maintaining the native code size between compilations.
Marcos Henrich [Wed, 19 Aug 2015 19:05:42 +0000 (20:05 +0100)]
[runtime] Added MONO_DEBUG=single-imm-size.
In amd64 when i8const are use with values within the first 32 bits
instructions and registers used can be optimized to their 32 bit
versions.
Setting MONO_DEBUG=single-imm-size variable disables such optimizations
and guarantee that the the generated native code size is independent
of the i8const values.
Zoltan Varga [Sat, 22 Aug 2015 02:00:41 +0000 (22:00 -0400)]
[runtime] Fix native backtraces with lldb by closing stdin.
Zoltan Varga [Fri, 21 Aug 2015 22:04:10 +0000 (18:04 -0400)]
Fix the build.
Zoltan Varga [Fri, 21 Aug 2015 21:46:55 +0000 (17:46 -0400)]
[runtime] Implement support for dynamic methods in stack traces in a different way: instead of constructing the stack trace eagerly when it contains a dynamic method, save the list of dynamic methods into the Exception object so they are kept alive.
Marek Safar [Fri, 21 Aug 2015 19:36:52 +0000 (21:36 +0200)]
[runtime] Remove eager exception stack construction when it contains dynamic method. Fixes #33064
We used to construct exception stack traces as string at throw site (for dynamic methods) but
that does not work correctly because exception stack trace can be decomposed via
new StackTrace (exception) or merged via ExceptionDispatchInfo both of them need the exception
stack in raw form and not as a string.
Further the format used by local stack builder was not same as format used by
System.Diagnostics.StackTrace.
The orignal reason for the specialization was that dynamic method can be collected
before stack is rendered which leads to stack frame to be reported as
at <unknown method> instead of
at (wrapper dynamic-method)
That should be addressed by gc-link between dynamic method and exception or
stack-frame.
Zoltan Varga [Fri, 21 Aug 2015 18:15:24 +0000 (14:15 -0400)]
[arm64] Add gc_safe_point to cpu-arm64.md.
Rodrigo Kumpera [Fri, 21 Aug 2015 17:48:47 +0000 (13:48 -0400)]
[jit] Enable OP_GC_SAFE_POINT on ARM64
Rodrigo Kumpera [Fri, 21 Aug 2015 17:19:17 +0000 (13:19 -0400)]
[Facades] xammac_net_4_5 needs the reflection facades.
Rodrigo Kumpera [Fri, 21 Aug 2015 00:07:46 +0000 (20:07 -0400)]
[BCL] Fix xammac_4_5 build of the Facades.
Rodrigo Kumpera [Thu, 20 Aug 2015 23:48:15 +0000 (19:48 -0400)]
[BCL] Partial compilation fix for xammac_4_5. Facades still busted.
Rodrigo Kumpera [Thu, 20 Aug 2015 21:23:53 +0000 (17:23 -0400)]
[arm64] Fix MONO_CONTEXT_GET_CURRENT so it can be used multiple times in the same compilation unit.
Marek Safar [Thu, 20 Aug 2015 21:25:24 +0000 (23:25 +0200)]
Fixes build of xammac new facades
Zoltan Varga [Thu, 20 Aug 2015 20:46:22 +0000 (16:46 -0400)]
[coop] Avoid polling in the mono_thread_interruption_checkpoint () icall wrapper, it could lead to infinite recursion if the polling flag is not cleared fast enough.
Zoltan Varga [Mon, 17 Aug 2015 19:21:25 +0000 (15:21 -0400)]
[coop] Avoid taking the gc lock when rehashing mono_g_hash tables, its not needed with the coop gc since the gc cannot preempnt that code.
Zoltan Varga [Thu, 20 Aug 2015 17:37:16 +0000 (13:37 -0400)]
[coop] Enter blocking mode before waiting on a condvar in the threadpool code.
Marek Safar [Thu, 20 Aug 2015 13:40:26 +0000 (15:40 +0200)]
Fixes mobile build
BogdanovKirill [Thu, 20 Aug 2015 10:51:35 +0000 (15:51 +0500)]
[ChunkStream] CPU and memory leak fix when writing and reading infinitely
The problem is connected with "chunks" field in ChunkStream class. As you can see in "ReadFromChunks" method, the number of elements of this array continuously grows, because array's elements are not removed but just set to null. So, every subsequent call of this method will be slower than previous and will use additional memory more and more infinitely. Yes, we have "ResetBuffer" method than could clear "chunks" array, but nobody call it when the connection is infinite.
This change is released under the MIT license.
Marek Safar [Thu, 20 Aug 2015 08:10:05 +0000 (10:10 +0200)]
Merge pull request #1990 from akoeplinger/fix-getsystemtimezone-reflection
[corlib] Rename private method in TimeZoneInfo to avoid conflict with public one via reflection
Alexander Köplinger [Thu, 20 Aug 2015 02:40:58 +0000 (04:40 +0200)]
[corlib] Rename private method in TimeZoneInfo to avoid conflict with public one via reflection
A private overload of the public GetSystemTimeZones() method was added in
4dc9a90d7f23f0f5a7a31f7357ea782408d3d9b5.
This broke code that tried to access that method via reflection and expected that there be only one.
Fixing this by renaming the private method to GetSystemTimeZonesCore (which is also more aligned with FindSystemTimeZoneByIdCore).
Rodrigo Kumpera [Wed, 19 Aug 2015 23:22:28 +0000 (19:22 -0400)]
[coop] We call into the GC holding the appdomain mutex. Suspend around locking.
João Matos [Wed, 19 Aug 2015 23:09:34 +0000 (00:09 +0100)]
[System] Remove MonoSyncFileStream.cs from mobile sources.
Zoltan Varga [Wed, 19 Aug 2015 22:32:17 +0000 (18:32 -0400)]
Revert "[coop] Disable exception checks in mono_threads_state_poll (), it could lead to infinite recursion."
This reverts commit
2790501f696a74ca7fb4bfb64c05385138d758de.
Revert this as it causes corlib tests to hang.
Rodrigo Kumpera [Wed, 19 Aug 2015 21:14:38 +0000 (17:14 -0400)]
[coop] mono_gc_register_for_finalization does block, so guard against it.
Zoltan Varga [Wed, 19 Aug 2015 21:03:42 +0000 (17:03 -0400)]
[coop] Avoid doing polling in native-to-managed wrappers, the poll can trigger before reset_blocking is executed.
Rodrigo Kumpera [Wed, 19 Aug 2015 19:32:22 +0000 (15:32 -0400)]
[coop] Add stress test. It still beats me.
Rodrigo Kumpera [Wed, 19 Aug 2015 19:31:39 +0000 (15:31 -0400)]
[coop] The sgen_interruption mutex can be taken in unsafe mode, so we need to suspend around it.
Marek Safar [Wed, 19 Aug 2015 15:18:54 +0000 (17:18 +0200)]
[corlib] Add underlying Console stream specialization to FileStream
João Matos [Wed, 19 Aug 2015 13:54:43 +0000 (14:54 +0100)]
[runtime] Fixed AArch64 Android cross-compilation build.
This was introduced by https://github.com/mono/mono/commit/
5604e0b5940a1df7059d11158b36fbde9a3c056d.
For some reason we were getting duplicate assembly labels, this fixes it.
```[8:45:15] /var/folders/hv/lh9y7pps1vbfsc737h_nl4mh0000gp/T//cczYhnuB.s: Assembler messages:
[8:45:15] /var/folders/hv/lh9y7pps1vbfsc737h_nl4mh0000gp/T//cczYhnuB.s:9012: Error: symbol `L0' is already defined
[8:45:15] make[7]: *** [libmini_la-mini-exceptions.lo] Error 1
[8:45:15] make[7]: *** Waiting for unfinished jobs....```
Marek Safar [Wed, 19 Aug 2015 12:12:33 +0000 (14:12 +0200)]
[corlib] Remove unused icall
Marek Safar [Wed, 19 Aug 2015 09:51:38 +0000 (11:51 +0200)]
[corlib] Remove unused file
Marek Safar [Wed, 19 Aug 2015 09:49:31 +0000 (11:49 +0200)]
[system] Add a workaround for redirected StandardInput writes. Fixes #32905
Marek Safar [Wed, 19 Aug 2015 09:34:17 +0000 (11:34 +0200)]
[System] Refactor Process start to better control pipes flow
Marek Safar [Tue, 18 Aug 2015 09:39:16 +0000 (11:39 +0200)]
[system] Simplify process redirection initialization
Marek Safar [Tue, 18 Aug 2015 09:38:19 +0000 (11:38 +0200)]
[corlib] Add FileStream safe handle argument check
Martin Baulig [Wed, 19 Aug 2015 11:16:59 +0000 (13:16 +0200)]
[WFC]: Fix yesterday's commit.
We actually don't need the length check here. The only place where
the 'ref parameters' could possibly be replaced is at the end of the
private Request() method - to remove the 'IAsyncResult' argument from
and End*() method.
This fixes commit
0b1360c8e35f483c69a3bfef8b3c133e4932da9e and bug #32886.
(cherry picked from commit
1d2c58215fa00192d6306b4474ea4487df4b38e3)
Zoltan Varga [Wed, 19 Aug 2015 00:00:53 +0000 (20:00 -0400)]
Rodrigo Kumpera [Tue, 18 Aug 2015 22:52:10 +0000 (18:52 -0400)]
[coop] On OSX, set native_handle to the mac port.
Rodrigo Kumpera [Tue, 18 Aug 2015 22:25:02 +0000 (18:25 -0400)]
[jit] Print thread information when doing a gdb crash dump
Rodrigo Kumpera [Tue, 18 Aug 2015 21:42:46 +0000 (17:42 -0400)]
[build] Add execv to configure.ac, the runtime now needs it.
Zoltan Varga [Tue, 18 Aug 2015 21:18:25 +0000 (17:18 -0400)]
[sdb] Fix the handling of strings with embedded null values. Fixes #33066.