Vlad Brezae [Wed, 5 Oct 2016 00:30:26 +0000 (03:30 +0300)]
Merge pull request #3705 from BrzVlad/fix-sgen-internal-alloc
[sgen] Fix block size computation for allocation size
Alexander Köplinger [Tue, 4 Oct 2016 23:23:36 +0000 (01:23 +0200)]
Merge pull request #3697 from directhex/fix-make-dist-missing-basic.exe
When basic.exe isn't in DISTFILES, it gets excluded from `make dist`
Alexander Köplinger [Tue, 4 Oct 2016 22:55:07 +0000 (00:55 +0200)]
Merge pull request #3711 from akoeplinger/fix-fullaot-tests
Fix two test failures in the FullAOT Jenkins job
Aleksey Kliger [Mon, 26 Sep 2016 20:07:48 +0000 (16:07 -0400)]
[MonoError] Don't overwrite computed TypeLoadException message with empty string
Fixes [#44729](https://bugzilla.xamarin.com/show_bug.cgi?id=44729).
Alexander Köplinger [Tue, 4 Oct 2016 20:23:16 +0000 (22:23 +0200)]
Fix two test failures in the FullAOT Jenkins job
Disable WebOperationsContextTest.Current like on monotouch, it relies on dynamic code generation.
The namedmutex-destroy-race.cs runtime test doesn't work on mobile_static since we don't have named Mutexes.
Alexander Köplinger [Tue, 4 Oct 2016 18:25:53 +0000 (20:25 +0200)]
Add mono-package-runtime to EXTRA_DIST
The file was added in
15b6ef60e45bb978203b57da4b956aa1d1f86f3c
Marek Safar [Tue, 4 Oct 2016 16:53:23 +0000 (18:53 +0200)]
[corlib] Enable more RuntimeHelpers tests
Alexander Köplinger [Tue, 4 Oct 2016 16:39:18 +0000 (18:39 +0200)]
Merge pull request #3693 from rolfbjarne/watchos-simplify-http-message-handler-selection
[System.Net.Http] Simplify default http message handler for watchOS since there's only one valid value.
Alexander Köplinger [Tue, 4 Oct 2016 16:35:48 +0000 (18:35 +0200)]
Merge pull request #3704 from rolfbjarne/watchos-servicepointmanager
[System] Add back a few ServicePointManager properties that can be used by multiple networking stacks.
Vlad Brezae [Tue, 4 Oct 2016 11:47:51 +0000 (14:47 +0300)]
[sgen] Fix block size computation for allocation size
The block size for a slot size is the minimum block size that can fit two slots. Make sure the computation accounts for the fact that even though a slot size might fit twice in the block, it still has to be allocated at aligned addresses, so it can end up using a higher block size.
Fixes 44922.
Aleksey Kliger (λgeek) [Tue, 4 Oct 2016 14:05:33 +0000 (10:05 -0400)]
Merge pull request #3686 from lambdageek/dev-format-printf
Add MONO_ATTR_FORMAT_PRINTF macro
Jo Shields [Tue, 4 Oct 2016 09:49:46 +0000 (10:49 +0100)]
Add EXTRA_DIST listing all the files from btls
Apparently there's no way to get CMake to just spit out its own uncached variables, so we can't do this programatically.
Jo Shields [Tue, 4 Oct 2016 09:48:07 +0000 (10:48 +0100)]
Remove useless BTLS_DEPS variable
Rolf Bjarne Kvinge [Tue, 4 Oct 2016 08:37:45 +0000 (10:37 +0200)]
[System] Add back a few ServicePointManager properties that can be used by multiple networking stacks.
Niklas Therning [Tue, 4 Oct 2016 08:35:14 +0000 (10:35 +0200)]
Merge pull request #3695 from ludovic-henry/fix-thread-test
[tests] Fix p/invoke test on windows
Zoltan Varga [Tue, 4 Oct 2016 03:10:31 +0000 (23:10 -0400)]
[sdb] Avoid adding the first file name in the debug info to the list of file names if a method has no seq points. Fixes #44982. (#3696)
Alex Rønne Petersen [Tue, 4 Oct 2016 02:58:37 +0000 (04:58 +0200)]
Merge pull request #3700 from alexrp/profiler-c9-fixes
[profiler] Fix a regression that caused all buffers to have a zero thread ID.
Alex Rønne Petersen [Tue, 4 Oct 2016 02:28:26 +0000 (04:28 +0200)]
[profiler] Use macro constants instead of passing a bunch of bools.
Alex Rønne Petersen [Tue, 4 Oct 2016 02:06:30 +0000 (04:06 +0200)]
[profiler] Update a stale comment.
Alex Rønne Petersen [Tue, 4 Oct 2016 02:06:21 +0000 (04:06 +0200)]
[profiler] Add some asserts.
Alex Rønne Petersen [Tue, 4 Oct 2016 02:04:21 +0000 (04:04 +0200)]
[profiler] Simplify send_log_unsafe ().
Alex Rønne Petersen [Fri, 16 Sep 2016 20:53:38 +0000 (22:53 +0200)]
[profiler] Fix a regression that caused all buffers to have a zero thread ID.
This was introduced in
928b840dad3c9cc1c39c3fe5820bf8394ae9b66b.
Zoltan Varga [Tue, 4 Oct 2016 02:00:31 +0000 (22:00 -0400)]
[SRE] Remove more dead code.
Zoltan Varga [Tue, 4 Oct 2016 01:17:25 +0000 (21:17 -0400)]
[SRE] Remove more unused icall declarations.
Zoltan Varga [Tue, 4 Oct 2016 00:45:28 +0000 (20:45 -0400)]
[SRE] Remove more unused icalls.
Alexander Köplinger [Tue, 4 Oct 2016 00:36:56 +0000 (02:36 +0200)]
[btls] Add missing icall definition for mono_btls_x509_revoked_get_revocation_date
Zoltan Varga [Tue, 4 Oct 2016 00:16:10 +0000 (20:16 -0400)]
[SRE] Small code cleanup.
Zoltan Varga [Mon, 3 Oct 2016 23:33:55 +0000 (19:33 -0400)]
[SRE] Remove unused icall from inside a DISABLE_REFLECTION_EMIT block.
Alex Rønne Petersen [Mon, 3 Oct 2016 22:12:34 +0000 (00:12 +0200)]
Merge pull request #3698 from alexrp/profiler-c9-fixes
More C9 profiler fixes
Zoltan Varga [Mon, 3 Oct 2016 21:04:34 +0000 (17:04 -0400)]
[SRE] Delay the creation of the MonoClass for dynamic types until CreateType () is called. Remove some icalls. (#3687)
Ludovic Henry [Mon, 3 Oct 2016 17:19:25 +0000 (19:19 +0200)]
[tests] Fix thread-native-exit test on windows
Martin Baulig [Mon, 3 Oct 2016 19:59:51 +0000 (21:59 +0200)]
[metadata]: Unconditionally enable ves_icall_Mono_Btls_Provider_IsSupported().
The MonoBtlsProvider.IsSupported() icalls ves_icall_Mono_Btls_Provider_IsSupported()
needs to be available whether BTLS is available or not because it is used at
runtime to decide whether or not to enable BTLS.
(cherry picked from commit
7b2a96fbd372ad74c2595b473c00ac7e1ed9ca67)
Alex Rønne Petersen [Mon, 3 Oct 2016 20:02:46 +0000 (22:02 +0200)]
[profiler] Fix BYTE_SIZE macro conflict on OS X.
Alex Rønne Petersen [Mon, 3 Oct 2016 19:53:59 +0000 (21:53 +0200)]
[profiler] Fix PROF_TLS_FREE () on pthread TLS systems.
Rodrigo Kumpera [Mon, 3 Oct 2016 19:47:18 +0000 (21:47 +0200)]
[profiler] Fix the build on Android (missing fcntl.h include).
Martin Baulig [Mon, 3 Oct 2016 19:21:36 +0000 (21:21 +0200)]
Oops, actually correctly revert that commit.
(cherry picked from commit
04379d5d73838d12f772ac99cae4360dbd5d8c7a)
Martin Baulig [Mon, 3 Oct 2016 19:12:18 +0000 (21:12 +0200)]
[System]: Temporarily switch the default TLS provider back to "legacy".
Also revert the Jenkins commit in
c462f4e6032cd70d692461f09b295671d380eef8.
(cherry picked from commit
cd1b0b8edf43ee61dc87ebc7edbc44f7d56204b5)
Jo Shields [Mon, 3 Oct 2016 19:08:17 +0000 (20:08 +0100)]
When basic.exe isn't in DISTFILES, it gets excluded from `make dist`
Marek Safar [Mon, 3 Oct 2016 16:19:36 +0000 (18:19 +0200)]
[Mono.Debugger.Soft] Move TypeLoadClass types to new file to improve testing
Rolf Bjarne Kvinge [Mon, 3 Oct 2016 16:21:40 +0000 (18:21 +0200)]
[System.Net.Http] Simplify default http message handler for watchOS since there's only one valid value.
Alexander Köplinger [Mon, 3 Oct 2016 15:10:49 +0000 (17:10 +0200)]
[ci] Temporarily switch back to legacy TLS provider
Marek Safar [Mon, 3 Oct 2016 14:09:59 +0000 (16:09 +0200)]
[Mono.Debugger.Soft] Tweak ClassLocalReflection test
Niklas Therning [Mon, 3 Oct 2016 12:56:26 +0000 (14:56 +0200)]
Merge pull request #3691 from ntherning/enable-tests-in-pr-builds-on-windows
Enable tests in Windows PR builds
Rolf Bjarne Kvinge [Mon, 3 Oct 2016 11:00:16 +0000 (13:00 +0200)]
[System*] Throw a PlatformNotSupported exception when using the managed networking stack on watchOS. (#3683)
* [System.Data] System.Data.SqlClient is not supported in watchOS.
System.Data.SqlClient is not supported in watchOS, because it depends on a
working managed networking stack, which we don't have on watchOS.
* [System] Throw PlatformNotSupportedExceptions in the networking stack for watchOS.
* [System] Don't reference/build Mono.Security.dll when building for watchOS.
This means we can't build Mono.Data.Tds.dll either, since it uses
Mono.Security.dll extensively. In any case Mono.Data.Tds.dll is useless
without a working networking stack, and since it's a Mono-only dll (i.e. not
part of netstandard or facades), just remove the entire assembly from the
watchOS profile.
System.Security.dll uses Mono.Security.dll as well, but the required classes
are available inside mscorlib.dll (as internal classes), so just open up
mscorlib internals to System.Security.dll.
* [System] Update tests after API change for watchOS.
* [System.Data] Update tests after API change in watchOS.
* Revert "Fix build break from
81fb20737f810def6dde88d87a1b2f23cdb736c3"
This reverts commit
f4475ff01358f8490e7cd0878e8b39bed2a0def7.
* Fix missing trailing newline in monotouch_watch_System.dll.sources
It breaks the build on Linux if the newline is missing.
Niklas Therning [Mon, 3 Oct 2016 09:10:42 +0000 (11:10 +0200)]
Enable tests in Windows PR builds
Also run the test suite in Windows PR builds. We disable all the test suites
in Windows PR builds that are known to fail.
Marek Safar [Mon, 3 Oct 2016 07:37:47 +0000 (09:37 +0200)]
[System] Server property of HttpWebResponse should never be null
Alexander Köplinger [Sun, 2 Oct 2016 22:33:15 +0000 (00:33 +0200)]
[btls] Fix i386 build on Linux by setting -arch on Darwin only
The -arch option is an Apple extension, it caused failures on i386 Linux: "unrecognized command line option '-arch'"
Alex Rønne Petersen [Sun, 2 Oct 2016 19:59:26 +0000 (21:59 +0200)]
Merge pull request #3689 from alexrp/profiler-c9-fixes
Profiler fixes for Cycle 9 (#2)
Alex Rønne Petersen [Sun, 2 Oct 2016 19:55:29 +0000 (21:55 +0200)]
[profiler] Fix GC finalize object end event not getting invoked.
Alex Rønne Petersen [Sun, 2 Oct 2016 19:53:09 +0000 (21:53 +0200)]
Revert "[domain] Report domain unloads to the profiler when finalizing the domain."
This reverts commit
c8b20290808563f89d29b22d2fe35eb906cfe725.
This caused ordering problems with app domain events: https://bugzilla.xamarin.com/show_bug.cgi?id=44552
Conflicts:
mono/metadata/gc.c
Alex Rønne Petersen [Sun, 2 Oct 2016 19:10:58 +0000 (21:10 +0200)]
Merge pull request #3688 from alexrp/profiler-c9-fixes
Profiler fixes for Cycle 9
Alex Rønne Petersen [Wed, 14 Sep 2016 12:26:12 +0000 (14:26 +0200)]
[profiler] Bump profiler version to v1.1.
Alex Rønne Petersen [Wed, 14 Sep 2016 19:50:18 +0000 (21:50 +0200)]
[profiler] Don't emit enter/leave events in onlycoverage mode.
Alex Rønne Petersen [Wed, 14 Sep 2016 19:26:51 +0000 (21:26 +0200)]
[profiler] Add a nocounters option.
Alex Rønne Petersen [Wed, 14 Sep 2016 19:14:20 +0000 (21:14 +0200)]
[profiler] Address a couple of FIXMEs in the counters sampling code.
Alex Rønne Petersen [Wed, 14 Sep 2016 13:42:26 +0000 (15:42 +0200)]
[profiler] Use eglib alloc/free functions everywhere.
Alex Rønne Petersen [Wed, 14 Sep 2016 13:38:06 +0000 (15:38 +0200)]
[profiler] Warn if we can't detect the CPU count.
Alex Rønne Petersen [Wed, 14 Sep 2016 13:20:15 +0000 (15:20 +0200)]
[profiler] Use the native thread wrapper functions to manage threads.
Alex Rønne Petersen [Wed, 14 Sep 2016 12:59:42 +0000 (14:59 +0200)]
[utils/threads] Add and export a mono_native_thread_join () function.
Alex Rønne Petersen [Wed, 14 Sep 2016 12:36:54 +0000 (14:36 +0200)]
[utils/threads] Export all native thread functions.
Alex Rønne Petersen [Wed, 14 Sep 2016 12:31:32 +0000 (14:31 +0200)]
[profiler] Access in_shutdown atomically.
Alex Rønne Petersen [Wed, 14 Sep 2016 16:20:14 +0000 (18:20 +0200)]
[profiler] Drop support for perf events on Linux.
Alex Rønne Petersen [Tue, 13 Sep 2016 15:57:54 +0000 (17:57 +0200)]
[utils/lfa] Add a missing #include to fix the profiler build.
Alex Rønne Petersen [Tue, 13 Sep 2016 11:09:24 +0000 (13:09 +0200)]
[profiler] Disable GC move events when allocation events are disabled.
They serve no purpose when allocation profiling is enabled, and just make log
files bigger than they have to be.
Alex Rønne Petersen [Tue, 13 Sep 2016 09:34:22 +0000 (11:34 +0200)]
[profiler] Clean up and improve the helper thread code.
* Don't invoke undefined behavior if an fd is >= FD_SETSIZE.
* Allow multiple command sockets.
* Close the command socket(s) on shutdown.
* Properly run cleanup logic on shutdown.
Alex Rønne Petersen [Mon, 12 Sep 2016 17:29:05 +0000 (19:29 +0200)]
[profiler] Process requests in method_jitted ().
Alex Rønne Petersen [Mon, 12 Sep 2016 13:53:37 +0000 (15:53 +0200)]
[profiler] Remove the need to pass a MonoProfiler argument to some functions.
This is now available on the MonoProfilerThread structure.
Alex Rønne Petersen [Mon, 12 Sep 2016 13:35:24 +0000 (15:35 +0200)]
[profiler] Fix the way the profiler frees hazardous data on shutdown.
Alex Rønne Petersen [Mon, 12 Sep 2016 12:48:51 +0000 (14:48 +0200)]
[profiler] Replace a check with an assert in coverage_filter ().
Alex Rønne Petersen [Mon, 12 Sep 2016 12:44:01 +0000 (14:44 +0200)]
[profiler] Add messages to most assertions.
Alex Rønne Petersen [Mon, 12 Sep 2016 12:31:16 +0000 (14:31 +0200)]
[profiler] Remove the ign_res () hack.
Alex Rønne Petersen [Mon, 12 Sep 2016 12:15:16 +0000 (14:15 +0200)]
[profiler] Clean up the #include mess in mono-profiler-log.c.
Half of these aren't even needed - get rid of those. Sort the rest.
Alex Rønne Petersen [Mon, 12 Sep 2016 11:58:25 +0000 (13:58 +0200)]
[profiler] Remove mono_threads_attach_tools_thread () declaration.
We get this from mono-threads.h now.
Alex Rønne Petersen [Mon, 12 Sep 2016 11:51:45 +0000 (13:51 +0200)]
[profiler] Remove some broken, commented-out code from register_method_local ().
Alex Rønne Petersen [Mon, 12 Sep 2016 11:06:54 +0000 (13:06 +0200)]
[profiler] assert () -> g_assert ().
Alex Rønne Petersen [Mon, 12 Sep 2016 10:49:10 +0000 (12:49 +0200)]
[profiler] Always enable the helper thread.
We need it in all cases now that we use it to periodically flush all buffers.
The only platforms it was disabled on was NaCl, which we haven't bothered to
support in a while anyway.
Alex Rønne Petersen [Mon, 12 Sep 2016 10:27:39 +0000 (12:27 +0200)]
[profiler] Encapsulate some common logic in the ENTER_LOG/EXIT_LOG macros.
This also has the nice effect of reducing the amount of times we attempt to
take the reader lock. Now we take it and release it once for a single event.
Alex Rønne Petersen [Mon, 12 Sep 2016 10:27:21 +0000 (12:27 +0200)]
[profiler] Add a missing deinit_thread () call to the helper thread.
Alex Rønne Petersen [Mon, 12 Sep 2016 08:44:34 +0000 (10:44 +0200)]
[profiler] Fix several race conditions in accessing MonoProfilerThread.buffer.
Only in very few situations is it okay to access this field without first
taking the reader lock or exclusive lock.
Fixes some crashes observed in the profiler stress tests.
Alex Rønne Petersen [Mon, 12 Sep 2016 08:44:00 +0000 (10:44 +0200)]
[profiler] Don't flush empty log buffers.
Alex Rønne Petersen [Mon, 12 Sep 2016 08:43:38 +0000 (10:43 +0200)]
[profiler] Add an extra assert.
Alex Rønne Petersen [Sat, 10 Sep 2016 21:09:48 +0000 (23:09 +0200)]
[sgen] Always report object moves on the GC thread.
This avoids exposing the SGen worker threads through the profiler APIs. Doing
so had two main problems:
* It's easy for a user of the profiler API to accidentally mess with the state
of the worker thread in all sorts of ways, which could break the GC.
* It's been a long-standing guarantee that any profiler API callback will be
invoked on a thread that is, at the very least, attached to the runtime via
the mono-threads infrastructure. This is not the case for SGen workers.
This fixes a deadlock in the log profiler when using major=marksweep-conc.
Alex Rønne Petersen [Sat, 10 Sep 2016 05:22:25 +0000 (07:22 +0200)]
[profiler] Rename decode.c to mprof-report.c.
Alex Rønne Petersen [Sat, 10 Sep 2016 05:15:50 +0000 (07:15 +0200)]
[profiler] Rename proflog.{c,h} to mono-profiler-log.{c,h} for consistency with other profilers.
Alex Rønne Petersen [Fri, 9 Sep 2016 16:50:56 +0000 (18:50 +0200)]
[profiler] Remove utils.c/utils.h, move the code to proflog.c/decode.c, and clean it up.
* Drop support for fast/null timers.
* Use Mono runtime functions for getting the thread ID and allocating buffers.
Alex Rønne Petersen [Sat, 10 Sep 2016 10:38:01 +0000 (12:38 +0200)]
[acceptance-tests] Improve the profiler-stress test runner.
* Emit an NUnit test report file.
* Set a timeout of 6 hours per test.
* Do a thread dump for timed-out tests.
* Don't print stdout/stderr for passing tests.
Alex Rønne Petersen [Sat, 10 Sep 2016 10:22:58 +0000 (12:22 +0200)]
[ci] Bump the timeout of the profiler stress test suite to 24 hours.
Alex Rønne Petersen [Fri, 9 Sep 2016 16:00:36 +0000 (18:00 +0200)]
[sgen] Remove bogus mono_profiler_events assert.
This variable can be changed at any time by any thread. It makes no sense to
assert that it has a particular flag.
Alex Rønne Petersen [Fri, 9 Sep 2016 10:26:04 +0000 (12:26 +0200)]
[utils] Move MONO_DEPRECATED to mono-publib.h and make it imply MONO_API + MONO_RT_EXTERNAL_ONLY.
Also make it work with MSVC.
Alex Rønne Petersen [Fri, 9 Sep 2016 10:12:27 +0000 (12:12 +0200)]
[profiler] Remove the long-obsolete hsmode option.
Also refactor the heap walk code a bit.
Alex Rønne Petersen [Fri, 9 Sep 2016 09:46:15 +0000 (11:46 +0200)]
[profiler] Document and fix the onlycoverage option.
Alex Rønne Petersen [Fri, 9 Sep 2016 09:33:31 +0000 (11:33 +0200)]
[profiler] Remove the countersonly option.
It was never documented and is no longer functional.
Alex Rønne Petersen [Fri, 9 Sep 2016 09:21:20 +0000 (11:21 +0200)]
[man] Update mprof-report.1 to indicate the correct default maxframes value.
Alex Rønne Petersen [Fri, 9 Sep 2016 09:11:21 +0000 (11:11 +0200)]
[profiler] Use the signal shutdown logic for the sampling thread for more cases.
Alex Rønne Petersen [Fri, 9 Sep 2016 08:23:41 +0000 (10:23 +0200)]
[profiler] Remove some indirection in setting up GC events.
* mono_gc_enable_events: This did nothing for SGen and we called it
unconditionally for Boehm. So no point in having it around.
* mono_gc_enable_alloc_events: The performance difference between checking
a static alloc_events variable versus checking mono_profiler_events is
marginal at best and doesn't justify the indirection, especially now that
we support managed allocators while profiling.
Alex Rønne Petersen [Fri, 9 Sep 2016 08:16:26 +0000 (10:16 +0200)]
[profiler] Lift profiler limitation in mono_class_get_allocation_ftn ().
This has not actually been necessary since allocation reporting was moved into
the GC implementations.
Alex Rønne Petersen [Fri, 9 Sep 2016 05:21:17 +0000 (07:21 +0200)]
[profiler] Don't leak counter data structures on shutdown.
Alex Rønne Petersen [Fri, 9 Sep 2016 05:07:55 +0000 (07:07 +0200)]
[profiler] Simplify counters initialization.
Alex Rønne Petersen [Fri, 9 Sep 2016 05:04:13 +0000 (07:04 +0200)]
[profiler] Don't emit a perf counters sample event if none are registered.
Alex Rønne Petersen [Fri, 9 Sep 2016 05:03:29 +0000 (07:03 +0200)]
[profiler] Fix the code that synthesizes thread end events.
It could previously fail to process a newly allocated buffer.