mono.git
7 years agoEmpty commit to force a wrench build
Ankit Jain [Sat, 15 Apr 2017 01:48:02 +0000 (21:48 -0400)]
Empty commit to force a wrench build

7 years agoMerge pull request #4569 from lambdageek/dev-coop-handles-march
Aleksey Kliger (λgeek) [Fri, 14 Apr 2017 19:30:53 +0000 (15:30 -0400)]
Merge pull request #4569 from lambdageek/dev-coop-handles-march

Misc coop handles work

7 years ago[appletls]: Disable the new keychain code on XI. (#4695)
Martin Baulig [Fri, 14 Apr 2017 18:50:36 +0000 (14:50 -0400)]
[appletls]: Disable the new keychain code on XI. (#4695)

(cherry picked from commit b6255d35cd224bc2ed63e52689fc336c31e63a34)

7 years ago[WebConnection] Fix race condition between Close and BeginWrite (#4693)
Ludovic Henry [Fri, 14 Apr 2017 18:51:42 +0000 (14:51 -0400)]
[WebConnection] Fix race condition between Close and BeginWrite (#4693)

* [WebConnection] Make ReadDone and InitRead instance methods to avoid passing cnc around

* [WebConnection] Inline only call to InitConnection

* [WebConnection] Fix race condition between Close and BeginWrite

7 years ago[msvc] Update csproj files (#4696)
monojenkins [Fri, 14 Apr 2017 17:12:35 +0000 (19:12 +0200)]
[msvc] Update csproj files (#4696)

7 years ago[custom-attrs] Use coop handles for mono_reflection_get_custom_attrs_info_checked
Aleksey Kliger [Thu, 23 Mar 2017 21:36:19 +0000 (17:36 -0400)]
[custom-attrs] Use coop handles for mono_reflection_get_custom_attrs_info_checked

* use handles in icalls
  - ves_icall_MonoCustomAttrs_GetCustomAttributesDataInternal
  - ves_icall_MonoCustomAttrs_GetCustomAttributesInternal

7 years ago[reflection] Move mono_reflection_type_get_handle to sre-internals.h
Aleksey Kliger [Thu, 23 Mar 2017 20:09:59 +0000 (16:09 -0400)]
[reflection] Move mono_reflection_type_get_handle to sre-internals.h

It's basically deprecated and only use in reflection until reflection is
converted to use handles.

7 years ago[custom-attrs] Rename custom_attrs_defined_internal to ves_icall_MonoCustomAttrs_IsDe...
Aleksey Kliger [Thu, 23 Mar 2017 19:35:57 +0000 (15:35 -0400)]
[custom-attrs] Rename custom_attrs_defined_internal to ves_icall_MonoCustomAttrs_IsDefinedInternal

and use coop handles.

7 years ago[remoting] Use coop handles for S.R.Remoting.Contexts.Context.{Register,Release}Context
Aleksey Kliger [Wed, 22 Mar 2017 15:54:26 +0000 (11:54 -0400)]
[remoting] Use coop handles for S.R.Remoting.Contexts.Context.{Register,Release}Context

* ves_icall_System_Runtime_Remoting_Contexts_Context_RegisterContext
* ves_icall_System_Runtime_Remoting_Contexts_Context_ReleaseContext

Added new mono_threads_{register,release}_app_context to be used internally in
the runtime.

7 years ago[runtime] Use coop handles for ves_icall_System_AppDomain_DoUnhandledException
Aleksey Kliger [Tue, 21 Mar 2017 20:39:16 +0000 (16:39 -0400)]
[runtime] Use coop handles for ves_icall_System_AppDomain_DoUnhandledException

7 years ago[domain] Mark mono_context_set external only
Aleksey Kliger [Tue, 21 Mar 2017 19:02:25 +0000 (15:02 -0400)]
[domain] Mark mono_context_set external only

runtime should use mono_context_set_handle

7 years ago[remoting] Move mono_context_{get,set} icall registration to remoting
Aleksey Kliger [Tue, 21 Mar 2017 19:01:39 +0000 (15:01 -0400)]
[remoting] Move mono_context_{get,set} icall registration to remoting

It was previously in marshal

7 years ago[domain] Use handles for MonoAppContext icalls
Aleksey Kliger [Tue, 21 Mar 2017 17:37:01 +0000 (13:37 -0400)]
[domain] Use handles for MonoAppContext icalls

* ves_icall_System_AppDomain_InternalGetContext
* ves_icall_System_AppDomain_InternalGetDefaultContext
* ves_icall_System_AppDomain_InternalSetContext

7 years ago[reflection] Use coop handles for MonoEventInfo.get_event_info
Aleksey Kliger [Thu, 16 Mar 2017 21:25:13 +0000 (17:25 -0400)]
[reflection] Use coop handles for MonoEventInfo.get_event_info

7 years agoBump CoreRT
Marek Safar [Tue, 11 Apr 2017 21:37:03 +0000 (23:37 +0200)]
Bump CoreRT

7 years ago[runtime] Avoid freeing a string passed to mono_mb_emit_exception_full (), it doesn...
Zoltan Varga [Thu, 13 Apr 2017 21:11:23 +0000 (17:11 -0400)]
[runtime] Avoid freeing a string passed to mono_mb_emit_exception_full (), it doesn't assume ownership of it. Fixes random wrench failures after 91ae1664061e8ac2d370da57c57d450bb00d64de.

7 years agoRevert "[acceptance-tests] Disable a regressed coreclr test"
Alexander Köplinger [Thu, 13 Apr 2017 20:46:05 +0000 (22:46 +0200)]
Revert "[acceptance-tests] Disable a regressed coreclr test"

This reverts commit 5e8012a6787e4dc1bb6577c4e3572a2c8070dd05.

The bug was fixed.

7 years ago[jit] Make newarr [void] unverified. Fixes #55083.
Zoltan Varga [Thu, 13 Apr 2017 20:40:34 +0000 (16:40 -0400)]
[jit] Make newarr [void] unverified. Fixes #55083.

7 years agoMerge pull request #4680 from lambdageek/bug-49721-take2
Aleksey Kliger (λgeek) [Thu, 13 Apr 2017 18:27:02 +0000 (14:27 -0400)]
Merge pull request #4680 from lambdageek/bug-49721-take2

[loader] Ignore public key token in strong name match, if requested framework assembly was remapped

7 years ago[btls]: Cleanup certificate store initialization (#4683)
Martin Baulig [Thu, 13 Apr 2017 17:46:54 +0000 (13:46 -0400)]
[btls]: Cleanup certificate store initialization (#4683)

* [BTLS]: Cleanup certificate store initialization.

* Kill unused MonoBtlsX509Store.AddTrustedRoots().

* In server-mode, MonoBtlsProvider.SetupCertificateStore() now only adds
  certificates explicitly trused via MonoTlsSettings.TrustAnchors.

* MonoTlsProvider.ValidateCertificate() - which is called from
  X509Certificate2.Verify() via X509CertificateImplBtls.Verify() - now
  uses MonoTlsSettings.DefaultSettings and assumes client-mode.

* [appletls]: Actually use the new code that was added in PR #4671.

* [btls]: Add new MonoTlsSettings.CertificateValidationTime property.

This allows you to set a custom time for certificate expiration checks.

* [appletls]: Bind SecTrustSetVerifyDate() and check MonoTlsSettings.CertificateValidationTime.

7 years agoFix check for file in gensources.sh
Alexander Köplinger [Thu, 13 Apr 2017 17:15:37 +0000 (19:15 +0200)]
Fix check for file in gensources.sh

It didn't correctly check whether the file exists so we got
"tail: no such file or directory" messages during the build.

7 years ago[runtime] Fix some small domain related memory leaks. (#4685)
Zoltan Varga [Thu, 13 Apr 2017 16:16:24 +0000 (12:16 -0400)]
[runtime] Fix some small domain related memory leaks. (#4685)

7 years ago[System.Core][System.ComponentModel.DataAnnotations] Update strings
Marek Safar [Thu, 13 Apr 2017 10:22:45 +0000 (12:22 +0200)]
[System.Core][System.ComponentModel.DataAnnotations] Update strings

7 years agoMerge pull request #4675 from kumpera/runtime-scalability-take1
Rodrigo Kumpera [Wed, 12 Apr 2017 23:01:36 +0000 (16:01 -0700)]
Merge pull request #4675 from kumpera/runtime-scalability-take1

[runtime] Reduce contention on some top locks when running Roslyn.

7 years ago[appletls]: Actually use the new code that was added in PR #4671.
Martin Baulig [Wed, 12 Apr 2017 17:38:56 +0000 (13:38 -0400)]
[appletls]: Actually use the new code that was added in PR #4671.

7 years agoMerge pull request #4615 from alexanderkyte/string_error_handling
Alexander Kyte [Wed, 12 Apr 2017 19:47:39 +0000 (15:47 -0400)]
Merge pull request #4615 from alexanderkyte/string_error_handling

[runtime] Don't discard string conversion errors

7 years ago[ppdb] Fix a crash if mono_ppdb_get_seq_points () is only passed a 'source_file'...
Zoltan Varga [Wed, 12 Apr 2017 19:16:00 +0000 (15:16 -0400)]
[ppdb] Fix a crash if mono_ppdb_get_seq_points () is only passed a 'source_file' argument.

7 years ago[msvc] Update csproj files
monojenkins [Wed, 12 Apr 2017 16:36:50 +0000 (16:36 +0000)]
[msvc] Update csproj files

7 years ago[loader] Ignore public key token in strong name match, if requested framework assembl...
Aleksey Kliger [Wed, 12 Apr 2017 16:06:26 +0000 (12:06 -0400)]
[loader] Ignore public key token in strong name match, if requested framework assembly was remapped

When framework assemblies are compiled for the mobile runtime, they are
generally signed with a different key than the normal desktop one.
Unfortunately each assembly has different logic for which key is
used (typically silverlight.pub or corefx.pub in place of ecma.pub), and short
of hardcoding a table in the runtime, there's no good way to know.

7 years ago[assembly] Add option to ignore public key tokens when comparing MonoAssemblyNames
Aleksey Kliger [Wed, 12 Apr 2017 16:04:25 +0000 (12:04 -0400)]
[assembly] Add option to ignore public key tokens when comparing MonoAssemblyNames

7 years agoRevert "[loader] Remap public key tokens of framework assemblies when running with...
Aleksey Kliger [Tue, 11 Apr 2017 19:19:22 +0000 (15:19 -0400)]
Revert "[loader] Remap public key tokens of framework assemblies when running with --runtime=mobile"

This reverts commit af7195e3493bc8c3e49da9e411ec7c8da1efcbef.

7 years ago[acceptance-tests] Disable a regressed coreclr test
Alexander Köplinger [Wed, 12 Apr 2017 13:00:11 +0000 (15:00 +0200)]
[acceptance-tests] Disable a regressed coreclr test

I filed a tracking bug.

7 years agoMerge pull request #4670 from BrzVlad/fix-sgen-testing
Vlad Brezae [Wed, 12 Apr 2017 00:54:08 +0000 (03:54 +0300)]
Merge pull request #4670 from BrzVlad/fix-sgen-testing

[tests] sgen testing tweaks

7 years ago[tests] Improve configurations of sgen tests
Vlad Brezae [Mon, 10 Apr 2017 16:18:23 +0000 (19:18 +0300)]
[tests] Improve configurations of sgen tests

Main pointers :
 - explicit minor and bridge configuration (add some for missing major)
 - reduce duplicated testing or of low relevance (like split nursery)
 - intensive testing of latest new configurations combined (parallel minor + major + future experiments)
 - include testing with a small and a large nursery for additional variance

7 years ago[tests] Add timeout limits to some longer sgen tests
Vlad Brezae [Mon, 10 Apr 2017 12:50:39 +0000 (15:50 +0300)]
[tests] Add timeout limits to some longer sgen tests

7 years ago[loader] Make MonoImageSet::gclass_cache concurrent.
Rodrigo Kumpera [Tue, 22 Nov 2016 17:06:26 +0000 (09:06 -0800)]
[loader] Make MonoImageSet::gclass_cache concurrent.

7 years ago[loader] Move typespec_cache to a lock-free-reads hashtable.
Rodrigo Kumpera [Tue, 22 Nov 2016 09:41:46 +0000 (01:41 -0800)]
[loader] Move typespec_cache to a lock-free-reads hashtable.

7 years ago[loader] Add a lock-free cache in front of get_image_set. Doesn't override on fetch...
Rodrigo Kumpera [Tue, 22 Nov 2016 09:20:45 +0000 (01:20 -0800)]
[loader] Add a lock-free cache in front of get_image_set. Doesn't override on fetch, maybe needs tweaking?

7 years agoMerge pull request #4673 from kumpera/fix_stdelem_ref_perf
Rodrigo Kumpera [Tue, 11 Apr 2017 22:07:56 +0000 (18:07 -0400)]
Merge pull request #4673 from kumpera/fix_stdelem_ref_perf

[runtime] Fix get_virtual_stelemref_wrapper STELEMREF_CLASS case to actually do the base class check.

7 years ago[appletls]: Use SecIdentityCreate() to avoid using the Mac keychain. (#4671)
Martin Baulig [Tue, 11 Apr 2017 21:43:51 +0000 (17:43 -0400)]
[appletls]: Use SecIdentityCreate() to avoid using the Mac keychain. (#4671)

* [appletls]: Use SecIdentityCreate() to avoid using the Mac keychain when we have a private key.

Reading Certificates from the Mac Keychain
==========================================

Reading the private key from the keychain is a new feature introduced with
AppleTls on XamMac and iOS. On Desktop Mono, this new feature has several
known issues and it also did not received any testing yet. We go back to the old
way of doing things, which is to explicitly provide an X509Certificate2 with a
private key.

Keychain Dialog Popups
======================

When using Xamarin.Mac or Xamarin.iOS, we try to search the keychain
for the certificate and private key.

On Xamarin.iOS, this is easy because each app has its own keychain.

On Xamarin.Mac, the .app package needs to be trusted via code-sign
to get permission to access the user's keychain. [FIXME: I still have to
research how to actually do that.] Without this, you will get a popup
message each time, asking you whether you want to allow the app to access
the keychain, but you can make these go away by selecting "Trust always".

On Desktop Mono, this is problematic because selecting "Trust always"
give the 'mono' binary (and thus everything you'll ever run with Mono)
permission to retrieve the private key from the keychain.

This code would also trigger constant keychain popup messages,
which could only be suppressed by granting full trust. It also makes it
impossible to run Mono in headless mode.

SecIdentityCreate
=================

To avoid these problems, we are currently using an undocumented API
called SecIdentityRef() to avoid using the Mac keychain whenever a
X509Certificate2 with a private key is used.

On iOS and XamMac, you can still provide the X509Certificate without
a private key - in this case, a keychain search will be performed (and you
may get a popup message on XamMac).

7 years ago[runtime] Fix get_virtual_stelemref_wrapper STELEMREF_CLASS case to actually do the...
Rodrigo Kumpera [Tue, 11 Apr 2017 18:36:49 +0000 (11:36 -0700)]
[runtime] Fix get_virtual_stelemref_wrapper STELEMREF_CLASS case to actually do the base class check.

The code was bailing straight to native which is significantly slower. This is the result of roslyn compiling corlib on my machine:

Before:
real 0m5.757s
user 0m22.059s
sys 0m1.736s

After:
real 0m5.816s
user 0m23.623s
sys 0m1.693s

7 years ago[netstandard] Remove System.ArgIterator from facade
Alexander Köplinger [Tue, 11 Apr 2017 18:23:26 +0000 (20:23 +0200)]
[netstandard] Remove System.ArgIterator from facade

It was removed today: https://github.com/dotnet/standard/commit/52651e78ac329c56fb59cebf5b24174f25acb070

7 years ago[Facades] Build netstandard.dll by default (#4501)
Alexander Köplinger [Tue, 11 Apr 2017 18:18:55 +0000 (20:18 +0200)]
[Facades] Build netstandard.dll by default (#4501)

Added a new EXTERNAL_FACADE_DRAWING_REFERENCE variable which
specifies the path to an assembly that contains drawing types,
e.g. in the monotouch/monodroid case System.Drawing is built
inside the XI/XA repos.

Also update netstandard typeforwards to the latest version
from the dotnet/standard repo.

7 years ago[msvc] Update csproj files
monojenkins [Tue, 11 Apr 2017 16:29:26 +0000 (16:29 +0000)]
[msvc] Update csproj files

7 years agoMerge pull request #4116 from kumpera/jit-job-control
Rodrigo Kumpera [Tue, 11 Apr 2017 17:13:38 +0000 (10:13 -0700)]
Merge pull request #4116 from kumpera/jit-job-control

[mini] Introduce job control to the JIT. Limits by active and duplicate jobs.

7 years ago[arm] Fix a gsharedvt assertion which happens with gsharedvt methods with a lot of...
Zoltan Varga [Tue, 11 Apr 2017 15:51:45 +0000 (11:51 -0400)]
[arm] Fix a gsharedvt assertion which happens with gsharedvt methods with a lot of arguments. Fixes #54976.

7 years agoUpdate README.Mono.md
Marek Safar [Tue, 11 Apr 2017 14:36:11 +0000 (16:36 +0200)]
Update README.Mono.md

7 years agoReadme rename
Marek Safar [Tue, 11 Apr 2017 11:59:37 +0000 (13:59 +0200)]
Readme rename

7 years agoUpdates referencesource to .NET 4.7
Marek Safar [Fri, 7 Apr 2017 22:25:45 +0000 (00:25 +0200)]
Updates referencesource to .NET 4.7

7 years ago[resgen] Remove dependency on WinForms and use it in mobile profiles (#4667)
Alexander Köplinger [Mon, 10 Apr 2017 18:15:34 +0000 (20:15 +0200)]
[resgen] Remove dependency on WinForms and use it in mobile profiles (#4667)

resgen.exe used to load WinForms via reflection which is a pretty
large dependency. Instead we can just embed the few types that
are used for reading/writing resx files directly into the app.

Add System.Drawing.dll to the "build" profile so we can put
resgen there as well and allow us to no longer rely on system
resgen for mobile profiles like monotouch/monodroid.

7 years ago[msvc] Update csproj files (#4669)
monojenkins [Mon, 10 Apr 2017 16:48:21 +0000 (18:48 +0200)]
[msvc] Update csproj files (#4669)

7 years ago[corlib] Deconstruct api from corert
Marek Safar [Mon, 10 Apr 2017 09:47:25 +0000 (11:47 +0200)]
[corlib] Deconstruct api from corert

7 years agoBump corert
Marek Safar [Sat, 8 Apr 2017 08:52:26 +0000 (10:52 +0200)]
Bump corert

7 years ago[corlib] Add few checks for array boxing conversion of pointer types
Marek Safar [Fri, 7 Apr 2017 10:15:50 +0000 (12:15 +0200)]
[corlib] Add few checks for array boxing conversion of pointer types

7 years ago[corlib] Share corert Array code
Marek Safar [Wed, 5 Apr 2017 07:33:26 +0000 (09:33 +0200)]
[corlib] Share corert Array code

7 years ago[tests] Bump timeouts on sgen tests
Vlad Brezae [Mon, 10 Apr 2017 10:43:09 +0000 (13:43 +0300)]
[tests] Bump timeouts on sgen tests

Tests that have been known to regularly fail in the past.

7 years ago[arm64] Add a test file for codegen macros. Not used.
Zoltan Varga [Sun, 9 Apr 2017 22:59:44 +0000 (18:59 -0400)]
[arm64] Add a test file for codegen macros. Not used.

7 years ago[tests] Make stress testing more verbose (#4664)
Ludovic Henry [Sat, 8 Apr 2017 00:56:59 +0000 (20:56 -0400)]
[tests] Make stress testing more verbose (#4664)

7 years ago[mini] Fix spurious wakeups within JIT job control.
Rodrigo Kumpera [Fri, 7 Apr 2017 22:55:43 +0000 (15:55 -0700)]
[mini] Fix spurious wakeups within JIT job control.

The first iteration of this code suffered from spurious wakeups due to using a single cond-var for all compilation.

This introduce a per-job cond var and make threads wait on that. Spurious wakeups are quite problematic in heavily threaded
code such as Roslyn. On average, every wait would get 2 extra wakeups for no good reason.

With this change, on my laptop compilation times are the following:

With spurious wakeups:
real 0m6.134s
user 0m23.588s
sys 0m2.331s

Without spurious wakeups:
real 0m5.658s
user 0m22.851s
sys 0m1.694s

This represents a 8% wallclock speedup and 3% user time speedup.

As part of this change, the active threads accounting is gone as the number of waits due to cpu overload was close to zero.

7 years agoMerge pull request #4660 from xmcclure/llvm-orbis
Andi McClure [Fri, 7 Apr 2017 20:16:23 +0000 (16:16 -0400)]
Merge pull request #4660 from xmcclure/llvm-orbis

LLVM Orbis support

7 years agoLLVM: Orbis support, fix typo in configure.ac
Andi McClure [Thu, 6 Apr 2017 21:15:19 +0000 (17:15 -0400)]
LLVM: Orbis support, fix typo in configure.ac

7 years agoFix bug in SessionStateModule when session data is deleted
jmserrano [Fri, 7 Apr 2017 17:13:17 +0000 (19:13 +0200)]
Fix bug in SessionStateModule when session data is deleted

7 years ago[Facades] Add facades to winaot/orbis profiles (#4656)
Alexander Köplinger [Fri, 7 Apr 2017 18:05:34 +0000 (20:05 +0200)]
[Facades] Add facades to winaot/orbis profiles (#4656)

Also remove Mono.Simd as we don't it on new platforms.

Cleanup monotouch_dirs to not depend on testing_aot_full_dirs since
it should be separate (even though it contains the same right now).

7 years agoMerge pull request #4663 from xmcclure/bump-linker
Andi McClure [Fri, 7 Apr 2017 17:47:16 +0000 (13:47 -0400)]
Merge pull request #4663 from xmcclure/bump-linker

Bump linker external to its master

7 years ago[bcl] Add check for newline to gensources.sh (#4662)
Alexander Köplinger [Fri, 7 Apr 2017 16:07:52 +0000 (18:07 +0200)]
[bcl] Add check for newline to gensources.sh (#4662)

This has bitten us a bunch of times now so let's make sure
it doesn't happen again.

7 years agoBump linker external to its master
Andi McClure [Fri, 7 Apr 2017 15:42:00 +0000 (11:42 -0400)]
Bump linker external to its master

7 years agoMake sure .sources files end with newline
Alexander Köplinger [Fri, 7 Apr 2017 12:50:16 +0000 (14:50 +0200)]
Make sure .sources files end with newline

It confuses the build on Linux otherwise.

7 years agoBump corert
Marek Safar [Thu, 6 Apr 2017 21:24:25 +0000 (23:24 +0200)]
Bump corert

7 years ago[arm] Commit the generated arm_dpimacros.h/arm_vfpmacros.h files, they change very...
Zoltan Varga [Fri, 7 Apr 2017 04:44:23 +0000 (00:44 -0400)]
[arm] Commit the generated arm_dpimacros.h/arm_vfpmacros.h files, they change very infrequently, and having to generate them complicates the cross compiler/offsets tool build. (#4655)

7 years agoRemove debug fflush and fix active_jit_methods accounting in case of recursion.
Rodrigo Kumpera [Fri, 7 Apr 2017 01:43:04 +0000 (18:43 -0700)]
Remove debug fflush and fix active_jit_methods accounting in case of recursion.

7 years ago[runtime] Update the offsets tool to a new version of CppSharp and use 64 bit binarie...
Zoltan Varga [Fri, 7 Apr 2017 01:09:17 +0000 (21:09 -0400)]
[runtime] Update the offsets tool to a new version of CppSharp and use 64 bit binaries on osx. (#4659)

7 years agoFix compilation issues.
Rodrigo Kumpera [Wed, 22 Feb 2017 23:44:54 +0000 (15:44 -0800)]
Fix compilation issues.

7 years ago[mini] Introduce job control to the JIT. Limits by active and duplicate jobs.
Rodrigo Kumpera [Thu, 8 Dec 2016 00:10:41 +0000 (16:10 -0800)]
[mini] Introduce job control to the JIT. Limits by active and duplicate jobs.

This shown up as a problem under parallel roslyn.

We hit frequently the case of multiple threads compiling the same method in parallel
and wasting all but one.

Another issue that happens, but infrequently, is having more threads JITing than there
are cores in the machine. Such thrashing doesn't help.

Test setup. 4/8 macbook pro compiling corlib.

Baseline:
real 0m7.665s
user 0m20.078s
sys 0m2.653s
Methods JITted using mono JIT       : 22422
Total time spent JITting (sec)      : 18.5365

With this patch:
real 0m6.149s
user 0m18.504s
sys 0m1.487s
Methods JITted using mono JIT       : 16619
Total time spent JITting (sec)      : 4.9420

New counters
JIT compile waited others           : 7681
JIT compile 1+ jobs                 : 1
JIT compile overload wait           : 67
JIT compile spurious wakeups        : 14469

This results in a 20% wall clock reduction but only a 8% reduction on user.

We JIT 26% less methods, with very few duplications. Showing this drastically improves the situation.

JIT compilation time metrics are bogus due to .cctors and other sources of interference. So take it with a grain of salt.

Future work:

Based on the new counters, it's clear that the current wakeup design is suboptimal and we could further improve it by cutting on spurious wakeups.

7 years ago[tests] Fix out of tree build. (#4657)
Vincent Povirk [Thu, 6 Apr 2017 22:08:18 +0000 (17:08 -0500)]
[tests] Fix out of tree build. (#4657)

7 years ago[tests] Add stress testing and reduce sgen normal testing time (#4653)
Ludovic Henry [Thu, 6 Apr 2017 18:49:04 +0000 (14:49 -0400)]
[tests] Add stress testing and reduce sgen normal testing time (#4653)

* [tests] Keep testing even if a test has failed

* [tests] Add stress testing and reduce sgen normal testing time

7 years ago[jit] Only free the unwind info inside a MonoTrampInfo if its owned by the structure.
Zoltan Varga [Thu, 6 Apr 2017 17:21:38 +0000 (13:21 -0400)]
[jit] Only free the unwind info inside a MonoTrampInfo if its owned by the structure.

7 years ago[tools] Remove old msbuild experiment
Alexander Köplinger [Thu, 6 Apr 2017 00:25:35 +0000 (02:25 +0200)]
[tools] Remove old msbuild experiment

This is just confusing now that we have the real thing.

7 years ago[runtime] Free leaked variable. (#4643)
Rolf Bjarne Kvinge [Thu, 6 Apr 2017 03:06:58 +0000 (05:06 +0200)]
[runtime] Free leaked variable. (#4643)

7 years ago[aot] Print JIT failures without having to pass an additional option. (#4648)
Zoltan Varga [Thu, 6 Apr 2017 03:06:47 +0000 (23:06 -0400)]
[aot] Print JIT failures without having to pass an additional option. (#4648)

7 years agoMerge pull request #4612 from kumpera/android-changes-part2
Rodrigo Kumpera [Wed, 5 Apr 2017 23:59:08 +0000 (16:59 -0700)]
Merge pull request #4612 from kumpera/android-changes-part2

Fix Android compilation and some tests

7 years ago[tests] Rework how we AOT compile tests + General cleanup of make targets (#4639)
Ludovic Henry [Wed, 5 Apr 2017 23:54:49 +0000 (19:54 -0400)]
[tests] Rework how we AOT compile tests + General cleanup of make targets (#4639)

7 years ago[runtime] Don't return the modules for the current process when pid != getpid ().
Rodrigo Kumpera [Wed, 5 Apr 2017 21:17:37 +0000 (14:17 -0700)]
[runtime] Don't return the modules for the current process when pid != getpid ().

7 years ago[System] Disable test that is too unreliable.
Rodrigo Kumpera [Wed, 5 Apr 2017 21:16:39 +0000 (14:16 -0700)]
[System] Disable test that is too unreliable.

7 years agoImprove test assert.
Rodrigo Kumpera [Mon, 20 Mar 2017 23:49:25 +0000 (16:49 -0700)]
Improve test assert.

7 years ago[System] Disable a few tests that don't work on Android.
Rodrigo Kumpera [Mon, 20 Mar 2017 22:01:30 +0000 (15:01 -0700)]
[System] Disable a few tests that don't work on Android.

7 years ago[System] Disable test that doesn't work on Android.
Rodrigo Kumpera [Thu, 16 Mar 2017 23:04:35 +0000 (16:04 -0700)]
[System] Disable test that doesn't work on Android.

7 years ago[io-layer] Don't RC std handles or the current process on every lookup.
Rodrigo Kumpera [Thu, 16 Mar 2017 22:58:11 +0000 (15:58 -0700)]
[io-layer] Don't RC std handles or the current process on every lookup.

Caller don't expect those lookups to be RC'd so they don't compensate. This leads to unbound growth of their ref count, which eventually overflows.

7 years ago[runtime] When looking up the process name, don't bail out if you can't load its...
Rodrigo Kumpera [Thu, 16 Mar 2017 18:30:43 +0000 (11:30 -0700)]
[runtime] When looking up the process name, don't bail out if you can't load its modules.

Loading modules for other processes can fail under some linux sandboxing rules but that doesn't mean
we should not be able to compute the process name. So when module == NULL, we make module loading non-fatal.

7 years ago[runtime] Improve tracing of process name lookup functions.
Rodrigo Kumpera [Thu, 16 Mar 2017 18:23:20 +0000 (11:23 -0700)]
[runtime] Improve tracing of process name lookup functions.

7 years ago[runtime] Fix compilation under Android
Rodrigo Kumpera [Thu, 16 Mar 2017 18:21:28 +0000 (11:21 -0700)]
[runtime] Fix compilation under Android

7 years ago[jit] Fix a leak in the trampoline info registration code. (#4646)
Zoltan Varga [Wed, 5 Apr 2017 20:23:15 +0000 (16:23 -0400)]
[jit] Fix a leak in the trampoline info registration code. (#4646)

7 years ago[interp] testcase for stack overflow on tail recursion opt
Bernhard Urban [Wed, 5 Apr 2017 16:13:10 +0000 (18:13 +0200)]
[interp] testcase for stack overflow on tail recursion opt

inspired by

./mcs/mcs/assign.cs:
SimpleAssign:CheckEqualAssign ()

7 years ago[interp] fix stack overflow on tail recursion
Bernhard Urban [Tue, 4 Apr 2017 09:16:27 +0000 (11:16 +0200)]
[interp] fix stack overflow on tail recursion

7 years ago[interp] fix stack alloc size
Bernhard Urban [Tue, 4 Apr 2017 09:16:27 +0000 (11:16 +0200)]
[interp] fix stack alloc size

7 years ago[msvc] Update csproj files (#4645)
monojenkins [Wed, 5 Apr 2017 16:42:25 +0000 (18:42 +0200)]
[msvc] Update csproj files (#4645)

7 years ago[System.Data] Fix Azure SQL specific issues (ProviderTests) (#4622)
Egor Bogatov [Wed, 5 Apr 2017 13:12:21 +0000 (16:12 +0300)]
[System.Data] Fix Azure SQL specific issues (ProviderTests) (#4622)

* [System.Data] Fix Azure SQL specific issues (ProviderTests)

* [System.Data] ChangeDatabase - Azure specific test

* [System.Data] SqlConnectionTest: use Assert.Throws instead

7 years ago[Facades] Add forwarder for DbDataReaderExtensions
Marek Safar [Wed, 5 Apr 2017 08:03:02 +0000 (10:03 +0200)]
[Facades] Add forwarder for DbDataReaderExtensions

7 years ago[msvc] Update csproj files
monojenkins [Tue, 4 Apr 2017 16:25:38 +0000 (16:25 +0000)]
[msvc] Update csproj files

7 years ago[tests] Fix the mcs-compileall target in runtime/ (#4637)
Alexander Köplinger [Wed, 5 Apr 2017 01:34:23 +0000 (03:34 +0200)]
[tests] Fix the mcs-compileall target in runtime/ (#4637)

It is used as the "verify" step on Jenkins/Wrench and I noticed
it didn't run recently.

Looks like it was broken a while ago by 695e8f53ae7d2139.
Moving the verifiable_files variable at the top is wrong since
the $$profile variable is only defined inside the for loop and
so we'd get an empty list.

When that was fixed it still didn't work as piping to `echo`
doesn't work. Replaced it with a Makefile solution instead.

7 years agoMerge pull request #4630 from BrzVlad/feature-valloc-limit
Vlad Brezae [Tue, 4 Apr 2017 23:52:03 +0000 (02:52 +0300)]
Merge pull request #4630 from BrzVlad/feature-valloc-limit

[sgen] OOM testing