Vlad Brezae [Mon, 26 Sep 2016 20:33:56 +0000 (23:33 +0300)]
[sgen] Untag the vtable during concurrent mark
For now, concurrent mark runs concurrently with bridge during minors. Since bridge processing might tag object vtables, make sure we don't crash when we scan such objects.
Vlad Brezae [Mon, 26 Sep 2016 17:04:51 +0000 (20:04 +0300)]
[sgen] Fix internal allocation
After recent header size change in
883e0a2d899a6a19db2c1d5222d45b8423ce36a2, we had some slot sizes unaligned which was leading to unaligned memory allocation and therefore SIGBUS-es on some ARMs.
We used to have all allocators use 16k blocks and slot sizes optimized for this. After we switched to allocating in 4k, 8k and 16k blocks the slot sizes were not optimized for the new format.
This commit fixes unaligned problems, at the same time optimizing the size of allocator slots.
Niklas Therning [Wed, 21 Sep 2016 07:39:54 +0000 (09:39 +0200)]
Merge pull request #3588 from ntherning/fix-line-ending-issue-in-XmlReflectionImporterTests-Bug594490_SerializationOfXmlLangAttribute
Fixes line ending issue in XmlReflectionImporterTests.Bug594490_SerializationOfXmlLangAttribute
Aleksey Kliger (λgeek) [Tue, 20 Sep 2016 22:09:27 +0000 (18:09 -0400)]
Merge pull request #3569 from lambdageek/monodis-no-segfault
[monodis] Don't segfault using cooperative GC.
Ludovic Henry [Tue, 20 Sep 2016 20:39:30 +0000 (22:39 +0200)]
[threads] Move thread describe code to mono_thread_internal_describe (#3590)
Alexander Köplinger [Tue, 20 Sep 2016 17:30:04 +0000 (19:30 +0200)]
Fix Linux build break due to case sensitivity
Marek Safar [Tue, 20 Sep 2016 15:55:34 +0000 (17:55 +0200)]
[System] Add more types to mobile profile
Marek Safar [Tue, 20 Sep 2016 15:28:49 +0000 (17:28 +0200)]
[corlib] Remove duplicate files entries
Marek Safar [Tue, 20 Sep 2016 15:25:35 +0000 (17:25 +0200)]
[corlib] GC from referencesource
Marek Safar [Tue, 20 Sep 2016 15:19:12 +0000 (17:19 +0200)]
Merge pull request #3589 from ntherning/fix-line-ending-issues-in-System.Data-tests
Fixes line ending issues in System.Data tests
Niklas Therning [Tue, 20 Sep 2016 15:12:59 +0000 (17:12 +0200)]
Fixes line ending issues in System.Data tests
To make them run successfully on Windows.
Ludovic Henry [Tue, 20 Sep 2016 15:12:37 +0000 (17:12 +0200)]
[threads] Detach thread in all possible cases (#3584)
* [threads] Use mono_thread_detach_internal to factor code
* [threads] Make sure we detach the thread before exiting
* [threads] Add mono_thread_internal_current_is_attached
* [threads] Ensure we detach the thread on Boehm
Niklas Therning [Tue, 20 Sep 2016 14:42:24 +0000 (16:42 +0200)]
Fixes line ending issue in XmlReflectionImporterTests.Bug594490_SerializationOfXmlLangAttribute
This test is sensitive to the line ending mode used by git. When LF is used by
git (which is what Cygwin's git defaults to) this test fails on Windows since
CRLF will be used as line ending in the serialized XML. This patch changes the
test to use Environment.NewLine explicitly in the expected string.
Marek Safar [Tue, 20 Sep 2016 13:05:10 +0000 (15:05 +0200)]
Merge pull request #3586 from henricm/fix-win-uri-tests
Ignoring URI tests with unix path on windows
Marek Safar [Tue, 20 Sep 2016 11:14:13 +0000 (13:14 +0200)]
Rewrite
67cdb99 to make more sense and don't regress
Henric Müller [Tue, 20 Sep 2016 09:42:09 +0000 (11:42 +0200)]
Ignoring URI tests with unix path on windows
In the .NET runtime, parsing unix paths like "/foo"
on Windows fails. Therefore ignoring tests with such paths
when running tests on Windows.
Alexander Köplinger [Tue, 20 Sep 2016 09:12:01 +0000 (11:12 +0200)]
Merge pull request #3578 from henricm/fix-win-process-test
Fixes for ProcessTest on Windows
Alexander Köplinger [Tue, 20 Sep 2016 09:11:46 +0000 (11:11 +0200)]
Add link to Bugzilla ticket for unifying the behavior between .NET and Mono
Marek Safar [Tue, 20 Sep 2016 09:05:20 +0000 (11:05 +0200)]
[corlib] Cleanup more warnings
Marek Safar [Tue, 20 Sep 2016 08:42:17 +0000 (10:42 +0200)]
[mcs] Warn about unused local constants
Marek Safar [Tue, 20 Sep 2016 08:57:47 +0000 (10:57 +0200)]
Merge pull request #3580 from esdrubal/msym_no_cecil_ref
[mono-symbolicate] Added Mono.Cecil sources.
Niklas Therning [Tue, 20 Sep 2016 05:50:37 +0000 (07:50 +0200)]
Merge pull request #3577 from ntherning/fix-path-to-mono-exe-in-soft-debugger-tests-on-windows
Use the path of the current executable by default in soft debugger test on Windows to launch the child mono process
Vlad Brezae [Mon, 19 Sep 2016 18:05:27 +0000 (21:05 +0300)]
Merge pull request #3567 from BrzVlad/fix-conc-memusage2
[sgen] Fix concurrent memory usage
Alexander Köplinger [Mon, 19 Sep 2016 17:57:45 +0000 (19:57 +0200)]
[Facades] Another define fix
It was missed in https://github.com/mono/mono/commit/
c84760250884989e10d707c049fd0aacae79c93e.
Marek Safar [Mon, 19 Sep 2016 16:55:11 +0000 (18:55 +0200)]
[Facades] Use correct define
Alexander Köplinger [Mon, 19 Sep 2016 16:25:10 +0000 (18:25 +0200)]
Merge pull request #3522 from henricm/fix-csharp-compiler-path-windows
Using running process to determine mono exe path on windows
Marcos Henrich [Mon, 19 Sep 2016 15:44:33 +0000 (16:44 +0100)]
[mono-symbolicate] Added Mono.Cecil sources.
Mono.Cecil.Mdb is not installed with mono.
Instead of reference Mono.Cecil.Mdb we now add its sources directly.
Mono.Cecil internals are visible to Mono.Cecil.Mdb, but not to
mono-symbolicate so we add Mono.Cecil source too.
Fixes mono-symbolicate not working with installed mono.
Alexander Köplinger [Mon, 19 Sep 2016 15:15:25 +0000 (17:15 +0200)]
Merge pull request #3579 from radical/mcs-ignore-args
[mcs] Accept and ignore command line args supported by csc that we don't
Ankit Jain [Mon, 19 Sep 2016 15:09:55 +0000 (11:09 -0400)]
[mcs] Accept and ignore command line args supported by csc that we don't
.. support:
/publicsign+
/publicsign-
Marek Safar [Mon, 19 Sep 2016 14:47:21 +0000 (16:47 +0200)]
[mcs] Fixes codegen of predefined pointer arithmetic operators with user defined operator conversion for one of operands. Fixes #44440
Henric Müller [Mon, 19 Sep 2016 14:28:30 +0000 (16:28 +0200)]
Fixes for ProcessTest on Windows
* Checking more error codes on whitespace tests.
* Using findstr instead of type to enable stdin/out pipes.
Niklas Therning [Mon, 19 Sep 2016 12:11:54 +0000 (14:11 +0200)]
Use the path of the current executable by default in soft debugger tests on
Windows to launch the child mono process
The 'mono' shell script generated by the Cygwin make file system doesn't work
when running the soft debugger tests against an MSVC built mono executable.
This patch first tries with the main module of the current process when
running on Windows (and mono is built using MSVC). If it looks like a mono
executable the tests will use it before falling back to the shell script.
Marek Safar [Mon, 19 Sep 2016 11:20:41 +0000 (13:20 +0200)]
[bcl] Add more reflection types to monotouch
Marek Safar [Mon, 19 Sep 2016 10:48:19 +0000 (12:48 +0200)]
Merge pull request #3576 from ntherning/ignore-FileSecurityTest.EveryoneMayNotBeOwner-when-Administrator
Ignore the FileSecurityTest.EveryoneMayNotBeOwner test when running as Administrator
Marek Habersack [Mon, 19 Sep 2016 09:51:24 +0000 (11:51 +0200)]
[mkbundle] support satellite assemblies (#3448)
Satellite assemblies are special in that they all share the same file
name, but they live in separate directories named after the locale the
satellite assemblies pack. mkbundle currently doesn't support "clashing"
assembly filenames and will not be able to store the satellite
assemblies in the bundle for that reason.
This patch adds support for storing satellite assemblies with their
culture path prefix (e.g. en-US/MyAssembly.resources.dll) in the bundle
and also special code in the assembly loader to support such filenames
in the code which loads assemblies from the bundle.
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=27061
Niklas Therning [Mon, 19 Sep 2016 09:01:41 +0000 (11:01 +0200)]
Ignore the FileSecurityTest.EveryoneMayNotBeOwner test when running as
Administrator
This test fails when running as Administrator since Administrator CAN set the
owner to Everyone. This patch ignores the test when running as Administrator.
The check has to be done after the File.SetAccessControl() call that is
expected to fail since when we aren't running as Administrator the IsInRole()
check will trigger UAC which we need to prevent when possible.
Marek Safar [Fri, 16 Sep 2016 18:01:08 +0000 (20:01 +0200)]
Merge pull request #3573 from ntherning/replace-NUnit-Culture-with-SetCulture
Use NUnit's SetCulture attribute rather than Culture
Vlad Brezae [Tue, 13 Sep 2016 20:04:40 +0000 (23:04 +0300)]
[sgen] Trim worker gray queue after finishing concurrent mark
This was keeping around potentially many unused gray queue sections, or even constantly leaking in the case of many majors since every time we start a concurrent major we redirect some additional gray queue sections from main to worker thread gray queues, leading to unbounded growth. The gc thread always trims its gray queues at the end of the collection.
On graph8 this reduces memory usage by 5%. Fixes mem leak from #41995
Vlad Brezae [Thu, 15 Sep 2016 13:24:20 +0000 (16:24 +0300)]
[sgen] We don't need to trim the free list when finishing gray stack
We always dispose the gray queue at the end of the collection, which implies its trimming.
Vlad Brezae [Tue, 13 Sep 2016 19:59:41 +0000 (22:59 +0300)]
[sgen] Increase counter when actually allocating gray sections
Vlad Brezae [Fri, 16 Sep 2016 17:43:46 +0000 (20:43 +0300)]
Merge pull request #3562 from BrzVlad/fix-reverse-wbarrier
[jit] Fix missing wbarrier for array generic setter
Rodrigo Kumpera [Fri, 16 Sep 2016 17:13:54 +0000 (10:13 -0700)]
Merge pull request #3565 from vargaz/no-free-imt-thunks
[runtime] Avoid freeing IMT thunks, some threads might still be execu…
Marek Safar [Fri, 16 Sep 2016 16:05:34 +0000 (18:05 +0200)]
[corlib] Add missing apis
Niklas Therning [Fri, 16 Sep 2016 15:04:13 +0000 (17:04 +0200)]
Merge pull request #3574 from ntherning/disable-tests-with-com-instantiation-on-mono-on-windows
Disable tests which instantiate COM objects on Windows
Niklas Therning [Fri, 16 Sep 2016 14:59:03 +0000 (16:59 +0200)]
Disable tests which instantiate COM objects on Windows
COM is not working on Mono on Windows and adding support for it is not a
priority at the moment.
Marek Safar [Fri, 16 Sep 2016 13:47:50 +0000 (15:47 +0200)]
[System.Net.Http] Show invalid values added to HttpHeaderValueCollection. to Fixes #44413.
Marek Safar [Fri, 16 Sep 2016 11:12:34 +0000 (13:12 +0200)]
[mcs] Delay array base type interfaces initialization. Fixes #44402
Marek Safar [Fri, 16 Sep 2016 12:58:29 +0000 (14:58 +0200)]
Merge pull request #3564 from henricm/thread-safe-win32eventlog-notifications
Making Win32EventLog notification thread safe
Niklas Therning [Fri, 16 Sep 2016 12:57:21 +0000 (14:57 +0200)]
Merge pull request #3545 from ntherning/throw-AbandonedMutexException-on-unix
Correctly handle abandoned mutexes on non-Windows platforms
Niklas Therning [Fri, 16 Sep 2016 12:47:47 +0000 (14:47 +0200)]
Use NUnit's SetCulture attribute rather than Culture
A few tests are currently ignored when running on a system where the default
culture isn't "en" or "en-US". This patch changes Culture attributes to
SetCulture attributes instead to make those tests run on all system and make
NUnit set the culture to the required one during the test run.
Also found and fixed a test failure in one of these methods,
DateTimeTest.ToUniversalTime_TimeZoneOffsetShouldNotOverflow(), which assumed
the minimum year is 0 while it's actually 1. Confirmed that this is the case
on .NET as well.
Henric Müller [Fri, 16 Sep 2016 12:17:17 +0000 (14:17 +0200)]
Making Win32EventLog notification thread safe
The _notifyResetEvent could be closed and nulled and the
NotifyEventThread would still try to read from the event log.
Also multiple calls to EnableNotification would cause issues.
With this fix, we make sure only one notify event thread is
running and that we thread safe the disabling of notifications.
Ludovic Henry [Fri, 16 Sep 2016 09:48:47 +0000 (11:48 +0200)]
[runtime] Fix build
Ludovic Henry [Fri, 16 Sep 2016 09:46:46 +0000 (11:46 +0200)]
[threads] Check InternalThread.last just after checking corlib version
Bernhard Urban [Fri, 16 Sep 2016 09:24:27 +0000 (02:24 -0700)]
[io-layer] include `w32mutex-utils.h` (#3568)
Niklas Therning [Thu, 15 Sep 2016 11:39:03 +0000 (13:39 +0200)]
Correctly handle abandoned mutexes on non-Windows platforms
When a thread owning a mutex doesn't release it before it exits and a second
thread tries to take it using e.g. Mutex.WaitOne() an AbandonedMutexException
should be thrown. This is what .NET and Mono on Windows does.
This commit builds on the work done in PR #2267, which modifies the Win32
emulation of WaitForSingleObjectEx(), SignalObjectAndWait() and
WaitForMultipleObjectsEx() to return WAIT_ABANDONED_0 when expected, and
updates it to the current HEAD. It also adds a few test methods to
WaitHandleTest that test that WaitHandle.WaitAny() and WaitHandle.WaitAll()
follows the .NET behaviour.
Niklas Therning [Thu, 15 Sep 2016 10:51:09 +0000 (12:51 +0200)]
Correctly handle abandoned mutexes on non-Windows platforms
When a thread owning a mutex doesn't release it before it exits and a second
thread tries to take it using e.g. Mutex.WaitOne() an AbandonedMutexException
should be thrown. This is what .NET and Mono on Windows does.
This commit adds the infrastructure needed in the Win32 emulation layer to
coomunicate that a mutex has been abandoned. It builds on the work done in
PR #2267 and updates it to the current HEAD.
Marek Safar [Fri, 16 Sep 2016 08:55:41 +0000 (10:55 +0200)]
[mcs] Report more errors for nameof expressions. Fixes #44168
Marek Safar [Fri, 16 Sep 2016 08:26:38 +0000 (10:26 +0200)]
Merge pull request #3566 from ntherning/fix-time-zone-issues-on-windows
Fixes time zone issues when running on Windows
Zoltan Varga [Thu, 15 Sep 2016 23:44:10 +0000 (19:44 -0400)]
Revert "[loader] Tests for RefereceAssemblyAttribute support"
This reverts commit
31de4df835d27ec750fc81739bdd84a87a2efaa7.
Revert this as the corresponding fix was reverted.
Aleksey Kliger [Thu, 15 Sep 2016 22:04:54 +0000 (18:04 -0400)]
[monodis] Don't segfault using cooperative GC.
monodis with coop enabled segfaulted in mono_thread_info_attach
Zoltan Varga [Thu, 15 Sep 2016 18:06:21 +0000 (14:06 -0400)]
[winx64] Mark some inline functions static to hopefully fix the mxe build.
Zoltan Varga [Thu, 15 Sep 2016 16:30:25 +0000 (12:30 -0400)]
[runtime] Add a counter for the number of freed IMT trampolines.
Marek Safar [Thu, 15 Sep 2016 15:22:23 +0000 (17:22 +0200)]
[corlib] Use simple BinaryCompatibility as anywhere else
Marek Safar [Thu, 15 Sep 2016 15:12:38 +0000 (17:12 +0200)]
[bcl] Fix few warnings
Marek Safar [Thu, 15 Sep 2016 15:11:53 +0000 (17:11 +0200)]
[man] Update few mcs sections
Niklas Therning [Thu, 15 Sep 2016 14:18:05 +0000 (16:18 +0200)]
Fixes time zone issues when running on Windows
TimeZoneInfo.GetDaylightChanges() didn't work as expected when run against the
time zone data available in Windows.
This patch also enables most of the time zone related tests that were
previously ignored when not run on Unix platforms. Time zone ids will now be
mapped from tz db time zone names to Windows time zone names when needed so
that most of the tests can be run on Mono on Windows as well.
Marek Safar [Thu, 15 Sep 2016 12:16:46 +0000 (14:16 +0200)]
[build] Add System.Numerics.Vectors to xammac profile
Marek Safar [Thu, 15 Sep 2016 11:36:35 +0000 (13:36 +0200)]
[mcs] Improve member lookup rules when type parameter has both non-object effective base class and interface constraint(s)
Zoltan Varga [Thu, 15 Sep 2016 11:36:46 +0000 (07:36 -0400)]
Revert "[runtime] Check for ReferenceAssemblyAttribute when loading for execution."
This reverts commit
bc9461168edd5bceab698999685f3cbfdd113107.
Revert this to see if it fixes the wrench build.
Zoltan Varga [Thu, 15 Sep 2016 11:35:18 +0000 (07:35 -0400)]
[runtime] Avoid freeing IMT thunks, some threads might still be executing them. This creates a memory leak, but its bounded. Fixes #39832.
Ludovic Henry [Thu, 15 Sep 2016 08:12:07 +0000 (10:12 +0200)]
[w32handle] Remove case where mutex and cond are busy (#3561)
This code path has not been used for a while now, as mono_os_(mutex|cond)_destroy return -1 in case of error, and not EBUSY.
This is also the only code path that would check the return value, so we can simply remove the returned value, and assert on the error.
Marek Safar [Thu, 15 Sep 2016 06:55:06 +0000 (08:55 +0200)]
Merge pull request #3559 from mistressofjellyfish/httpcookie
[System.Web] HttpCookie load defaults from Web.config
Marek Safar [Thu, 15 Sep 2016 06:52:44 +0000 (08:52 +0200)]
Merge pull request #3558 from rolfbjarne/tests-system-dns-make-failures-not-crash-app
[System] Rewrite Dns tests so that failures don't cause the process to crash.
Vlad Brezae [Wed, 14 Sep 2016 22:16:03 +0000 (01:16 +0300)]
[jit] Fix missing wbarrier for array generic setter
The generic setter receives the element by reference which means we will never emit the write barrier since a reference to a reference is not a reference (mini_type_is_reference). Check the actual value instead. Fixes #42903.
Ludovic Henry [Wed, 14 Sep 2016 21:18:50 +0000 (23:18 +0200)]
[w32handle] Fix race condition when creating named mutex/event/semaphore (#3560)
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=41914
Marek Safar [Wed, 14 Sep 2016 16:39:26 +0000 (18:39 +0200)]
Merge pull request #3557 from ntherning/fix-time-zone-dst-in-delta-behaviour
Replicate .NET's TimeZoneInfo.IsDaylightSavingTime() and GetUtcOffset() behaviour when passed times within the lost period at DST start
Katharina Bogad [Wed, 14 Sep 2016 15:57:55 +0000 (17:57 +0200)]
[System.Web] HttpCookie load defaults from Web.config
HttpCookie now loads default values from the Web.config,
just like the reference source does.
Rolf Bjarne Kvinge [Wed, 14 Sep 2016 15:33:12 +0000 (17:33 +0200)]
[System] Rewrite Dns tests so that failures don't cause the process to crash.
Previously the tests were written so that some failures might occur on the
threadpool in methods that did not catch exceptions. In that case the process
would terminate due to an unhandled exception. So rewrite the tests to catch
exceptions in any code that doesn't run on the main thread, and forward those
exceptions to the main thread.
Also wait for async operations to complete on the main thread, and remove
asserts that are not supposed to be hit.
Marek Safar [Wed, 14 Sep 2016 13:40:11 +0000 (15:40 +0200)]
[mcs] Move type constraints checks after base type definition. Fixes #44212
Niklas Therning [Wed, 14 Sep 2016 12:57:03 +0000 (14:57 +0200)]
Merge pull request #3536 from henricm/fix-machinename-ignorecase
Ignoring case for MachineName in EventLogTest
Niklas Therning [Wed, 14 Sep 2016 10:00:07 +0000 (12:00 +0200)]
Replicate .NET's TimeZoneInfo.IsDaylightSavingTime() and GetUtcOffset()
behaviour when passed times within the lost period at DST start
When passed a time within this period .NET's IsDaylightSavingTime() returns
true while GetUtcOffset() returns the BaseUtcOffset without the DST delta
added. This patch changes the behaviour in Mono to do what .NET does.
Marek Habersack [Wed, 14 Sep 2016 09:18:13 +0000 (11:18 +0200)]
Set DefaultPersistentConnectionLimit to 10 for Xamarin.Android
This is to make it the same as the Xamarin.iOS setting and
fixes https://bugzilla.xamarin.com/show_bug.cgi?id=7467
Zoltan Varga [Wed, 14 Sep 2016 00:56:20 +0000 (02:56 +0200)]
[runtime] Rename IMT thunks to 'trampolines'. NFC. (#3555)
Ludovic Henry [Tue, 13 Sep 2016 21:40:58 +0000 (23:40 +0200)]
[io-layer] Extract Mutex, Semaphore and Event (#3553)
* [metadata] Move mutex managed support to seperate file
* [mutex] Extract CreateMutex
* [mutex] Extract ReleaseMutex
* [mutex] Extract OpenMutex
* [mutex] Extract wapi_mutex_abandon
* [mutex] Extract MonoW32HandleOps for mutex and named mutex
* [io-layer] Extract wapi_search_handle_namespace
* [metadata] Move semaphore managed support to seperate file
* [semaphore] Move _WapiHandle_sem and _WapiHandle_namedsem to semaphores.h
* [semaphore] Extract CreateSemaphore
* [semaphore] Extract ReleaseSemaphore
* [semaphore] Extract OpenSemaphore
* [semaphore] Extract MonoW32HandleOps
* [metadata] Move event managed support to seperate file
* [event] Extract CreateEvent
* [event] Remove dead code PulseEvent
* [event] Extract SetEvent
* [event] Extract ResetEvent
* [event] Extract OpenHandle
* [event] Extract MonoW32HandleOps
* [w32handle] Extract namespace locking
* [io-layer] Inline only use of wapi_shm_sem_lock/wapi_shm_sem_unlock
Ludovic Henry [Tue, 13 Sep 2016 21:40:01 +0000 (23:40 +0200)]
[hybrid-aot] Add runtime support (#3556)
* [aot-compiler] Add generic class and gsharedvt for hybrid AOT mode
* [aot-compiler] Remove dead code
* [hybrid-aot] Add --hybrid-aot for future use
Ludovic Henry [Tue, 13 Sep 2016 16:41:29 +0000 (18:41 +0200)]
[threads] Import mono_thread_info_set_priority (#3543)
* [mono-threads] Remove MonoThreadParm.creation_flags
* [mono-threads] Remove MonoThreadParm.priority and set to MONO_THREAD_PRIORITY_NORMAL by default
* [threads] Wrap use of mono_thread_info_(get|set)_priority
* [threads] Store priority on MonoInternalThread
* [threads] Import mono_thread_info_set_priority
* [mono-threads] Remove MonoThreadParm
Marek Safar [Tue, 13 Sep 2016 14:07:40 +0000 (16:07 +0200)]
[System] Don't compress custom http headers in httplistener response. Fixes #34715
Zoltan Varga [Tue, 13 Sep 2016 12:58:17 +0000 (08:58 -0400)]
[runtime] Pass the initial context to mono_walk_stack_with_ctx () in mono_stack_walk_async_safe (). Hopefully fixes #44164.
Vlad Brezae [Mon, 12 Sep 2016 20:27:39 +0000 (23:27 +0300)]
Merge pull request #3534 from BrzVlad/fix-conc-gcstress-mem
[sgen] Fix conc gcstress mem
Rodrigo Kumpera [Mon, 12 Sep 2016 20:05:28 +0000 (16:05 -0400)]
Merge pull request #3541 from kumpera/add-tas-to-threading
[abort] Reduce the race window when doing Monitor:Enter.
Zoltan Varga [Mon, 12 Sep 2016 18:59:46 +0000 (20:59 +0200)]
Bump version to 4.9.0
monojenkins [Mon, 12 Sep 2016 17:30:08 +0000 (18:30 +0100)]
Merge pull request #3549 from lewurm/arm64-icache-big-little-fix
[arm64] fixes around icache flushing
This fixes https://bugzilla.xamarin.com/show_bug.cgi?id=39859
The problem in `emit_thunk` and the workarounds for the Cortex A53 errata are unrelated to the bug above, but they don't hurt either.
The basic problem that we see is that the Exynos 8890 SoC (shipped for example in the world edition of the Samsung Galaxy S7) is a big.LITTLE architecture with two different CPUs, four of each. `__clear_cache` of GCC [1], the built-in that we use to flush the instruction cache, correctly reads the cache line sizes for data- and instruction cache from the CPU and then caches that result. However, the two CPUs on the Exynos 8890 have two different cache line sizes for the instruction cache (128 bytes vs. 64 bytes): If we happen to initialize the cache line sizes with the larger one, we only flush every other cache line if the code runs on the second CPU model.
Neither V8 [2] and LLVM [3] do caching of the cache line sizes, but just read it every time from the register. We have a slightly different solution, where we cache _and_ read the value every time and try to determine a global minimum across CPUs, in case we get scheduled to a different CPU by the kernel during the flushing loop.
[1] https://android.googlesource.com/toolchain/gcc/+/master/gcc-4.9/libgcc/config/aarch64/sync-cache.c#33
[2] https://github.com/v8/v8/commit/
fec99c689b8587b863df4a5c4793c601772ef663
[3] https://github.com/llvm-mirror/compiler-rt/blob/
ff75f2a0260b1940436a483413091c5770427c04/lib/builtins/clear_cache.c#L146
Marek Safar [Mon, 12 Sep 2016 14:52:30 +0000 (16:52 +0200)]
Merge pull request #3535 from henricm/fix-always-use-preamble-length
Removing hard coded preamble length
Vlad Brezae [Thu, 1 Sep 2016 17:58:08 +0000 (17:58 +0000)]
[sgen] Free major sections in bulk also on 64bit
On coreclr-gcstress this reduces the OS vmem maps by more than half.
Vlad Brezae [Fri, 2 Sep 2016 16:52:20 +0000 (16:52 +0000)]
[sgen] Adjust free-ing of empty blocks
After sweep, depending on the computed allowance, we are freeing empty blocks so that we still keep around enough blocks to fill that allowance (to avoid repeated vmaps).
On both collectors this had the problem that the allowance also accounts for LOS space, which we shouldn't account for in major section heuristics (which means that in LOS intensive benchmarks we only free major sections after the LOS shrinks).
On the concurrent collector, where we have a negative allowance adjustment depending on the duration of the concurrent mark (in order to mimic serial memory usage), we can have very small allowances at the end of a major collection, even 0. This means that we would reserve no empty blocks for later use.
We solve these issues by reserving empty blocks relative to the amount of current alive blocks, which is also the basis of how we compute the allowance in the first place.
Vlad Brezae [Tue, 30 Aug 2016 00:30:51 +0000 (00:30 +0000)]
[runtime] Replace uses of alloc functions with glib variants
Mark Probst [Thu, 9 Jun 2016 20:15:23 +0000 (13:15 -0700)]
[utils] Fix internal allocator header size.
The header is always just a pointer.
Mark Probst [Thu, 9 Jun 2016 20:40:11 +0000 (13:40 -0700)]
[runtime] Counters for allocated virtual memory.
David Karlaš [Mon, 12 Sep 2016 12:58:54 +0000 (14:58 +0200)]
Merge pull request #3552 from DavidKarlas/getScopeChanges
[Debugger] GetLocals was throwing NullReferenceException(li.scopes_start) if ran against older runtime
David Karlaš [Mon, 12 Sep 2016 11:01:27 +0000 (13:01 +0200)]
[Debugger] GetLocals was throwing NullReferenceException(li.scopes_start) if ran against older runtime
Added logic to make sure user of API handles version checking when calling GetScope
Made properties in LocalScope class public