William Godbe [Mon, 13 Jun 2016 20:08:10 +0000 (13:08 -0700)]
Merge pull request #5764 from wtgodbe/coverage
Update coverage test to have correct configuration for coreFX tests
Sean Gillespie [Mon, 13 Jun 2016 20:04:37 +0000 (13:04 -0700)]
Merge pull request #5762 from swgillespie/ci-longgc
Pass --long-gc and --gcsimulator to long GC and GCSimulator CI jobs, respectively
wtgodbe [Mon, 13 Jun 2016 20:03:46 +0000 (13:03 -0700)]
Update coverage test to have correct configuration for coreFX tests
Jan Kotas [Mon, 13 Jun 2016 19:46:15 +0000 (12:46 -0700)]
Delete bad assert (#5757)
William Godbe [Mon, 13 Jun 2016 18:37:38 +0000 (11:37 -0700)]
Merge pull request #5713 from wtgodbe/mutex
Keep mutex alive to avoid race condition in openmutexpos4 test
Jan Kotas [Mon, 13 Jun 2016 18:01:02 +0000 (11:01 -0700)]
Delete unnecessary cruft from internal mscorlib reference assembly (#5756)
Sean Gillespie [Mon, 13 Jun 2016 17:36:12 +0000 (10:36 -0700)]
Pass --long-gc and --gcsimulator to long GC and GCSimulator CI jobs, respectively
wtgodbe [Fri, 10 Jun 2016 22:57:07 +0000 (15:57 -0700)]
Keep mutex alive to avoid race condition in openmutexpos4 test
James Ko [Mon, 13 Jun 2016 01:41:33 +0000 (21:41 -0400)]
Specialize Comparer<T> for enums to avoid boxing (#5503)
Jan Kotas [Sun, 12 Jun 2016 14:18:22 +0000 (07:18 -0700)]
Partial revert "Fix problem with virtual memory commit in OOM scenario on Linux (#5609)" (#5744)
#5609 is suspect to cause intermittent crashes on OS X. Keep the fix for Linux, but revert to using the original code on OS X.
Jan Kotas [Sun, 12 Jun 2016 04:27:51 +0000 (21:27 -0700)]
Undo StompWriteBarrierResize reordering (#5740)
The recent commit introduced race by changing where StompWriteBarrierResize is called relative to other global state updates. Revert this change to fix the intermittent crashes that we are seeing because of that. We will look at fixing the theoretical problem that this reordering was trying to address in better way separately.
Peter Jas [Sun, 12 Jun 2016 02:00:54 +0000 (05:00 +0300)]
Add check for gnu/lib-names.h (#5727)
The header `<gnu/lib-names.h>` is not present on musl-libc based OSes.
Those names are not listed in any system header and this is deemed
irrelevant to have such a header in musl according to:
http://www.openwall.com/lists/musl/2013/11/09/1
Peter Jas [Sun, 12 Jun 2016 01:59:50 +0000 (04:59 +0300)]
Check for unavailable cache-size macro (#5728)
In musl-libc world _SC_LEVEL1_DCACHE_SIZE is undefined.
Jan Kotas [Sun, 12 Jun 2016 01:59:28 +0000 (18:59 -0700)]
Correct comment (#5738)
Vance Morrison [Sat, 11 Jun 2016 19:37:08 +0000 (12:37 -0700)]
Merge pull request #5544 from vancem/EtwSessionFix
Fix a problem where stale old, closed ETW sessions might be turned on.
Peter Jas [Sat, 11 Jun 2016 18:23:03 +0000 (21:23 +0300)]
Typedef __ptrace_request for musl-libc (#5730)
Ref: http://www.openwall.com/lists/musl/2015/10/01/3
Peter Jas [Sat, 11 Jun 2016 18:05:47 +0000 (21:05 +0300)]
Add check for sys/sysctl.h (#5726)
On some operating systems `<sys/sysctl.h>`is not present yet `sysct`
function in available. One example is Alpine Linux which uses musl-libc
as opposed to GNU libc.
Ref: dotnet/corefx#6253
Jan Kotas [Sat, 11 Jun 2016 14:49:03 +0000 (07:49 -0700)]
Do not use fragile native image content when generating R2R images (#5715)
Jonghyun Park [Sat, 11 Jun 2016 13:30:10 +0000 (22:30 +0900)]
Updates tryrun.cmake for ARM / ARM (softfp) (#5673)
While fixing #5316 (PR #5317, PR #5323), all the features related with PROCFS
are disabled in ARM and ARM (softfp) cross build.
As a result, the collision avodance logic in GetProcessIdDisambiguationKey is disabled,
which leads to random coreclr_initialize failures
(CLR failed to initialize itself when the previous execution of CLR with the same PID
abnormally terminates)
This commit tries to re-enable the relevant features for ARM and ARM (softfp) cross-build.
Since the ARM/Linux emulator (which is the current reference in use) supports
/proc/self/stat, /proc/self/status, /proc/self/maps, this commit re-enables
three relevant features (HAVE_PROCFS_STAT, HAVE_PROCFS_STATUS, HAVE_PROCFS_MAPS).
This commit tries to fix #5583.
Justin Van Patten [Sat, 11 Jun 2016 13:07:56 +0000 (06:07 -0700)]
JapaneseCalendar: Use Registry.LocalMachine instead of RegistryKey.GetBaseKey(RegistryKey.HKEY_LOCAL_MACHINE) (#5725)
JapaneseCalendar is the only code outside of the Registry code that
calls RegistryKey.GetBaseKey(RegistryKey.HKEY_LOCAL_MACHINE) to get a
RegistryKey instance for the local machine hive. Everywhere else uses
Registry.LocalMachine. Update JapaneseCalendar to match, which also
avoids the unnecessary RegistryKey/SafeRegistryHandle allocations.
Jarret Shook [Sat, 11 Jun 2016 13:07:39 +0000 (06:07 -0700)]
Merge pull request #5680 from prajwal-aithal/devel/arm-ci-cross-build
ARM-CI: Convert Linux ARM emulator CI check to cross build
Justin Van Patten [Sat, 11 Jun 2016 13:06:22 +0000 (06:06 -0700)]
Remove obsolete Registry.DynData field from System.Private.CoreLib (#5724)
Registry is internal in System.Private.CoreLib due to being pulled-in
by the dependency closure. The obsolete DynData field is only valid
on Win9X, so there's no need to allocate it and keep it around in
CoreCLR. Remove it from System.Private.CoreLib with an ifdef, along
with other references to the HKEY_DYN_DATA hive.
Prajwal A N [Fri, 10 Jun 2016 06:03:16 +0000 (15:03 +0900)]
ARM-CI: Convert Linux ARM emulator CI check to cross build
* Previously used emulated build took a lot of time leading to timeout errors
* Changing this CI check to build using cross build
Signed-off-by: Prajwal A N <an.prajwal@samsung.com>
Justin Van Patten [Sat, 11 Jun 2016 05:15:43 +0000 (22:15 -0700)]
Remove non-generic Stack from System.Private.CoreLib (#5703)
The non-generic Stack class only exists internally in
System.Private.CoreLib because it is being used in the Environment
class in one place for resource lookup and therefore is being
pulled-in by the dependency closure. It can be removed by using
List<string> instead.
Koundinya Veluri [Sat, 11 Jun 2016 01:43:31 +0000 (18:43 -0700)]
Merge pull request #5707 from kouvel/BgMarkFreeObjectAdvanceFix
Fix for GC hole when using software write watch
Andy Ayers [Fri, 10 Jun 2016 22:04:15 +0000 (15:04 -0700)]
Merge pull request #5692 from AndyAyersMS/DerministicCrypto
Modify Crypto benchmark so it uses a fixed random seed
Jan Vorlicek [Fri, 10 Jun 2016 21:44:24 +0000 (23:44 +0200)]
Fix rethrow of managed exception from native code (#5697)
This change fixes a problem that happens when managed exception is caught
in native code, rethrown and then caught and passed to DispatchManagedException
to be propagated further through managed code frames.
The problem is that while the exception was rethrown, it still has the
TargetFrameSp member set to the frame that has caught it and so the
DispatchManagedException thinks it is just continuing to propagate it in the
second pass instead of starting a new first pass.
The UnwindManagedExceptionPass2 then asserts, because the TargetFrameSp is
below the frame it is about to process.
The fix is to reset the TargetFrameSp to NoTargetFrameSp when the exception
is caught in native code - in PAL_EXCEPT and EX_CATCH_IMPL_EX (which catches
all exceptions).
I have also added few stress log messages for processing exception in native
frames that helped debug the issue.
Koundinya Veluri [Fri, 10 Jun 2016 20:34:43 +0000 (13:34 -0700)]
Fix for GC hole when using software write watch
Issue:
- When using software write watch, getting dirty pages is synchronized with growing the write watch table using gc_lock, as those cannot happen concurrently
- It turns out that a foreground GC can happen at that point, pausing the background GC while it tries to acquire gc_lock
- In this issue, the last object in the previously revisited page is a free object whose range spans one or more pages
- With the intent of skipping the free range, revisit_written_page() records the next object to scan immediately following the free range
- Since only 100 dirty pages are retrieved at a time, the next set of up to 100 dirty pages needs to be requested. Before that, a foreground GC begins, and the background GC pauses trying to acquire gc_lock.
- The foreground GC promotes some objects, and in the process allocates from the free range above, and completes
- One of the moved objects in that previously free range gets a reference to a new object that is not referenced from anywhere else
- The background GC resumes, determines that the moved object's page is dirty, but skips revisiting the object because the previously recorded next object from which to start scanning, already took the free range size into account before it was allocated
- The background GC does not mark through the moved object, so the newly referenced object appears to be free, and is sweeped
- Later, either verify_heap fails or the app crashes, when trying to access that referenced object
Fix:
- Similarly to what is done for the large object heap, when revisiting a page and using software write watch, don't advance last_object when the current object is a free object that spans beyond the current page or high_address
- On the next revisit, it would start scanning from the previously scanned free object (which now may be allocated or will have a smaller size) until it reaches the requested page to scan
Fixes (but not yet closing) #5194
Kyungwoo Lee [Fri, 10 Jun 2016 21:21:56 +0000 (14:21 -0700)]
Merge pull request #5691 from kyulee1/testupdate2
ARM64: Another Tests.lst Update for R2R
Rahul Kumar [Fri, 10 Jun 2016 21:13:32 +0000 (14:13 -0700)]
Merge pull request #5694 from rahku/sosFix
Fixes AV in sos for arm64
Rahul Kumar [Fri, 10 Jun 2016 18:52:59 +0000 (11:52 -0700)]
Fixes AV in sos for arm64
Andy Ayers [Fri, 10 Jun 2016 18:40:36 +0000 (11:40 -0700)]
Modify Crypto benchmark so it uses a fixed random seed
Fix seed so benchmark behavior doesn't vary randomly from run to run.
Kyungwoo Lee [Fri, 10 Jun 2016 18:23:54 +0000 (11:23 -0700)]
ARM64: Another Tests.lst Update for R2R
Fixes https://github.com/dotnet/coreclr/issues/5638
Fixes https://github.com/dotnet/coreclr/issues/5645
doublinkstay.cmd does not repro anymore
increase time-out for DeltaBlue
Kyungwoo Lee [Fri, 10 Jun 2016 18:20:41 +0000 (11:20 -0700)]
Merge pull request #5685 from kyulee1/testlst
ARM64: Update Tests.lst
Sean Gillespie [Fri, 10 Jun 2016 16:58:00 +0000 (09:58 -0700)]
Merge pull request #5621 from swgillespie/buildtest-refactor
Remove need for longgc and gcsimulator tests to have their own build
Sean Gillespie [Wed, 8 Jun 2016 23:04:24 +0000 (16:04 -0700)]
Remove need for longgc and gcsimulator tests to have their own build
Jan Kotas [Fri, 10 Jun 2016 16:20:18 +0000 (09:20 -0700)]
Merge pull request #5684 from dotnet-bot/from-tfs
Merge changes from TFS
Kyungwoo Lee [Fri, 10 Jun 2016 15:01:33 +0000 (08:01 -0700)]
ARM64: Update Tests.lst
Fixes https://github.com/dotnet/coreclr/issues/5641
Jan Kotas [Fri, 10 Jun 2016 14:29:12 +0000 (07:29 -0700)]
mscorlib/System.Private.CoreLib cleanup
Deleting files cloned for mscorlib rename - we should not need the clones anymore.
[tfs-changeset: 1611972]
Gaurav Khanna [Fri, 10 Jun 2016 06:45:23 +0000 (23:45 -0700)]
Merge pull request #5679 from dotnet-bot/UpdateDependencies20160610051941
Updating External dependencies to rc4-24210-00
dotnet-bot [Fri, 10 Jun 2016 05:19:41 +0000 (05:19 +0000)]
Updating External dependencies to rc4-24210-00
Kyungwoo Lee [Fri, 10 Jun 2016 03:14:19 +0000 (20:14 -0700)]
Merge pull request #5667 from kyulee1/testupdate
ARM64: Test Update
Andy Ayers [Fri, 10 Jun 2016 02:55:34 +0000 (19:55 -0700)]
Merge pull request #5670 from AndyAyersMS/ObserveCallSiteBlockWeight
Inliner: observe block weight, update schema and data
Kshama Pawar [Fri, 10 Jun 2016 02:29:59 +0000 (19:29 -0700)]
Merge pull request #5656 from dotnet/kspawa-profiler-doc
Create profiling-api-status.md
Swaroop Sridhar [Fri, 10 Jun 2016 00:31:08 +0000 (17:31 -0700)]
Merge pull request #5666 from swaroop-sridhar/LR
ARM64: Don't track LR as part of NV-Context
Pat Gavlin [Fri, 10 Jun 2016 00:19:50 +0000 (17:19 -0700)]
Merge pull request #5658 from pgavlin/PhaseInterface
Make Phase::{Pre,Do,Post}Phase protected.
Andy Ayers [Fri, 10 Jun 2016 00:10:19 +0000 (17:10 -0700)]
Inliner: observe block weight, update schema and data
Add block weight as observation. At first blush I suspect this will be
useful only when the jit has IBC data, and even then only in the root
method blocks.
We'll likely need to either build up better profile estimates for the
inliner or else just try and cope without it somehow.
Dump out block weight and the per-call profitability in the observation
schema and data. Among other things this lets us cross-validate how well
the ModelPolicy predictions match the abstract GLMNET models...
Pat Gavlin [Fri, 10 Jun 2016 00:11:58 +0000 (17:11 -0700)]
Merge pull request #5649 from pgavlin/removeSplitMethodTrees
Remove `fgSplitMethodTrees`.
Andy Ayers [Fri, 10 Jun 2016 00:08:39 +0000 (17:08 -0700)]
Merge pull request #5661 from AndyAyersMS/FirstDraftProfitablityModel
Inliner: implement profitabily side of the ModelPolicy
Brian Sullivan [Fri, 10 Jun 2016 00:05:14 +0000 (17:05 -0700)]
Merge pull request #5663 from briansull/legacy-cleanup
Code review cleanup items and moved some items into LEGACY_BACKEND
Russ Keldorph [Thu, 9 Jun 2016 23:57:42 +0000 (16:57 -0700)]
Merge pull request #5652 from RussKeldorph/5555
Fix WeakReference tests depending on JIT not extending lifetimes
Kshama Pawar [Thu, 9 Jun 2016 23:10:53 +0000 (16:10 -0700)]
Update profiling-api-status.md
Kshama Pawar [Thu, 9 Jun 2016 23:05:15 +0000 (16:05 -0700)]
Update profiling-api-status.md
Kshama Pawar [Thu, 9 Jun 2016 22:47:35 +0000 (15:47 -0700)]
Update profiling-api-status.md
Pat Gavlin [Thu, 9 Jun 2016 22:10:21 +0000 (15:10 -0700)]
Make Phase::Phase protected.
Like Phase::{Pre,Do,Post}Phase, this is an implementation detail of the top type
and should only be exposed to subclasses.
Jarret Shook [Thu, 9 Jun 2016 22:03:53 +0000 (15:03 -0700)]
Merge pull request #5588 from jashook/disable_kar
Mark KeepAliveRecur as GCStressIncompatible
Kyungwoo Lee [Thu, 9 Jun 2016 22:03:49 +0000 (15:03 -0700)]
ARM64: Test Update
Swaroop Sridhar [Thu, 9 Jun 2016 21:23:35 +0000 (14:23 -0700)]
ARM64: Don't track LR as part of NV-Context
The _pc and _sp fields actually refer to the caller's PC and SP values.
So, remove read/writes of LR in captureX19_X29 array of ARM64 MachState.
This change fixes a buffer overflow problem.
John Chen [Thu, 9 Jun 2016 21:22:00 +0000 (14:22 -0700)]
Merge pull request #5657 from JohnChen0/r2r
Add an option to log outcome of loading Ready to Run images
Brian Sullivan [Thu, 9 Jun 2016 21:21:51 +0000 (14:21 -0700)]
Fix clang build
Andy Ayers [Wed, 8 Jun 2016 00:19:31 +0000 (17:19 -0700)]
Inliner: implement profitabily side of the ModelPolicy
First (and very preliminary) cut at a profitability model, based
on inline data modelling.
ModelPolicy heuristic is updated to use this information to decide
when to inline. The policy has two parameters: one for the local
call site weight and another for the overall size/speed tradeoff
that we find acceptable. The first parameter is temporary as we
should be able to model this weight via observations.
Size/speed tradeoff is a policy decision and is a tuning parameter.
I've set it for now to roughly match the LegacyPolicy behavior, in
aggregate, across the jit perf benchmarks.
Pat Gavlin [Thu, 9 Jun 2016 21:10:26 +0000 (21:10 +0000)]
Merge pull request #5650 from pgavlin/SsaSkipDefs
Remove JIT_FEATURE_SSA_SKIP_DEFS.
Davis Goodin [Thu, 9 Jun 2016 21:05:15 +0000 (16:05 -0500)]
Merge pull request #5651 from dotnet-bot/UpdateDependencies20160609052537
Updating External dependencies to rc4-24209-00
Gaurav Khanna [Thu, 9 Jun 2016 21:04:34 +0000 (14:04 -0700)]
Merge pull request #5653 from gkhanna79/Fix5610JIT
Remove reference to the Arm32 JIT package since none exists.
Kyungwoo Lee [Thu, 9 Jun 2016 20:44:52 +0000 (13:44 -0700)]
Merge pull request #5648 from kyulee1/r2rci2
ARM64: Enable R2R CI
Brian Sullivan [Thu, 9 Jun 2016 17:46:57 +0000 (10:46 -0700)]
Code review cleanup items and moved some items into LEGACY_BACKEND ifdefs
From Codereview feedback:
Use BAD_VAR_NUM in a couple places instead of (unsigned)-1
In struct InitVarDscInfo
Renamed hasRetBuf to hasRetBufArg
In struct RegState:
Moved field rsCurRegArmNum into LEGACY_BACKEND ifdef
Removed instance field RegState::rsMaxRegArgNum as it is unnecessary
Reordered the fields from largest to smallest
In struct GenTreeCall node:
Moved field gtCallRegUsedMask into LEGACY_BACKEND ifdef
Changes to genRegArgNext to work correct for X64/UNIX (where it is not currently used)
Document the behavaior when given REG_ARG_LAST
John Chen (CLR) [Thu, 9 Jun 2016 15:54:37 +0000 (08:54 -0700)]
Add an option to log outcome of loading Ready to Run images
Kyungwoo Lee [Thu, 9 Jun 2016 17:10:01 +0000 (10:10 -0700)]
ARM64: Enable R2R CI
Rename "r2r" to "pri1r2r" to trigger private job.
Enable 12 hour periodic job.
Added test exclusions.
Pat Gavlin [Thu, 9 Jun 2016 19:04:22 +0000 (12:04 -0700)]
Make Phase::{Pre,Do,Post}Phase protected.
These methods are implementation details of a phase and should not be a part
of its public interface.
Kshama Pawar [Thu, 9 Jun 2016 18:28:04 +0000 (11:28 -0700)]
Create profiling-api-status.md
Gaurav Khanna [Thu, 9 Jun 2016 17:44:46 +0000 (10:44 -0700)]
Cleanup Arm32 package references.
Sasha Semennikov [Thu, 9 Jun 2016 17:56:57 +0000 (10:56 -0700)]
Merge pull request #5470 from alsemenn/fix1379
Fix memory leak in issue #1379
Pat Gavlin [Thu, 9 Jun 2016 17:19:46 +0000 (10:19 -0700)]
Remove `fgSplitMethodTrees`.
This code attempted to split trees that contained multiple calls
that returned floating-point values when targeting ARM. This code
was clearly incorrect--no attempt is made to obey the original tree
ordering (or indeed any valid ordering--and it was in fact disabled
in JIT32. Remove it.
Russ Keldorph [Thu, 9 Jun 2016 17:36:44 +0000 (10:36 -0700)]
Fix WeakReference tests depending on JIT not extending lifetimes
Target and IsAlive_neg are failing in some cases when JIT optimization is
disabled because the JIT (legally) generates code that holds a reference
to an object longer than expected. Instead of forcing optimization on for
these tests, I'm using the pattern of moving the problematic object
reference to a non-inlined helper method.
Fixes #5555
dotnet-bot [Thu, 9 Jun 2016 17:25:37 +0000 (17:25 +0000)]
Updating External dependencies to rc4-24209-00
Pat Gavlin [Fri, 3 Jun 2016 21:34:26 +0000 (14:34 -0700)]
Remove JIT_FEATURE_SSA_SKIP_DEFS.
This symbol is always defined to `1`. Remove it and its associated
dead code.
Davis Goodin [Thu, 9 Jun 2016 16:53:51 +0000 (11:53 -0500)]
Merge pull request #5636 from dagood/auto-update-dependencies
Add dependency auto-update script, UpdateDependencies.ps1
Davis Goodin [Thu, 9 Jun 2016 15:03:11 +0000 (10:03 -0500)]
Remove CoreFX-specific project.json update code and update summary comment.
Davis Goodin [Thu, 9 Jun 2016 14:50:08 +0000 (09:50 -0500)]
Port CoreFX version of UpdateDependencies.ps1.
Jan Kotas [Thu, 9 Jun 2016 14:30:50 +0000 (07:30 -0700)]
Merge pull request #5633 from dotnet-bot/from-tfs
Merge changes from TFS
Jonghyun Park [Thu, 9 Jun 2016 09:30:52 +0000 (18:30 +0900)]
Add -DARM_SOFTFP inside compileoptions.cmake (#5630)
Currently, '-DARM_SOFTFP' is added inside jit/CMakeList.txt and
vm/CMakeLists.txt, and thus the header definition might be inconsistent
across each componenet.
This inconsistency results in some strange behavior discussed in #5629.
This commit tries to enforce the consistent definition of '-DARM_SOFTFP'
for every component via definiing it inside compileoptions.cmake in order
to fix #5629.
MyungJoo Ham [Thu, 9 Jun 2016 08:40:18 +0000 (17:40 +0900)]
ARM/Linux Regression Fix of Exception Handling (#5596)
This fixes the regression caused by
594b424e1328135049cf0515bc5fc58b91f07e2a, which
intended to fix #5358 while breaking many of
exception handling unit test cases.
The commit fixing #5358 was an incorrect translation
of x86 assembly code.
Fix #5595, #5358.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Jan Kotas [Thu, 9 Jun 2016 08:25:16 +0000 (01:25 -0700)]
Fix build break in JIT CTP build
[tfs-changeset: 1611655]
Gaurav Khanna [Thu, 9 Jun 2016 04:02:03 +0000 (21:02 -0700)]
Merge pull request #5624 from schellap/win8-arm-master
[master][port] Add win8-arm package for CoreCLR
Aditya Mandaleeka [Thu, 9 Jun 2016 02:25:32 +0000 (19:25 -0700)]
Merge pull request #5589 from adityamandaleeka/sleep_return_type_confusion
Fix confused uses of return value of InternalSleepEx.
Jan Kotas [Thu, 9 Jun 2016 02:06:58 +0000 (19:06 -0700)]
Merge pull request #3864 from mikedn/mdarray-init
Add support for multi-dimensional array initialization
Brian Sullivan [Thu, 9 Jun 2016 02:06:42 +0000 (19:06 -0700)]
Merge pull request #5622 from parjong/fix/issue_5620
Allows the use of IsHFA only when FEATURE_HFA is enabled
Senthil [Thu, 9 Jun 2016 01:07:21 +0000 (18:07 -0700)]
Add win8-arm package for CoreCLR
Rahul Kumar [Thu, 9 Jun 2016 01:02:41 +0000 (18:02 -0700)]
Merge pull request #5618 from rahku/CiFix
Renable disabled arm64 R2R tests
Sergiy Kuryata [Thu, 9 Jun 2016 00:10:39 +0000 (17:10 -0700)]
Merge pull request #5607 from Maoni0/grow_card
need to account for server GC threads calling grow
Jonghyun Park [Wed, 8 Jun 2016 23:56:44 +0000 (08:56 +0900)]
Allows the use of IsHFA only when FEATURE_HFA is enabled
Jan Vorlicek [Wed, 8 Jun 2016 23:52:14 +0000 (01:52 +0200)]
Fix problem with virtual memory commit in OOM scenario on Linux (#5609)
A stress tests have uncovered a mysterious issue with virtual memory committing on
Linux. During some stress tests, all of a sudden, segments of GC heap got unmapped
or virtual allocator has reserved a block of memory twice.
It turned out that the issue was caused by a strange behavior of mmap in the OOM case.
When we commit a subrange of previously reserved memory (reservation uses mmap with
PROT_NONE, commit uses mmap with PROT_READ | PROT_WRITE) and the mmap fails due to
OOM, it ends up leaving the whole range that was supposed to be committed completely
unmapped. A later attempt to reserve virtual memory finds this block as a free one
and happily reserves a block in it. But our VM allocator is not aware of this issue.
The fix is to use another way to commit pages in a reserved range - using mprotect
to change their protection from the initial PROT_NONE to PROT_READ | PROT_WRITE.
This way doesn't have the problem. I've verified that it works on OSX too, so
I am switching to that way unconditionally.
Decommit still uses mmap so that we don't have to keep track of dirty pages and
so that the pages are really returned to the system in decommit.
Sergiy Kuryata [Wed, 8 Jun 2016 23:39:00 +0000 (16:39 -0700)]
Merge pull request #5601 from Maoni0/av_fix_final
software ww fix
Rahul Kumar [Wed, 8 Jun 2016 22:36:17 +0000 (15:36 -0700)]
Renable disabled arm64 R2R tests
Aditya Mandaleeka [Wed, 8 Jun 2016 21:59:21 +0000 (14:59 -0700)]
Merge pull request #5614 from adityamandaleeka/debian_84_badges
Update Debian build status badges/links to 8.4
Aditya Mandaleeka [Wed, 8 Jun 2016 21:49:27 +0000 (14:49 -0700)]
Update Debian build status badges/links to 8.4.
Deepak Shankargouda [Wed, 8 Jun 2016 21:39:31 +0000 (14:39 -0700)]
Fix error in RemoveDuplicateAssemblies task for perf (#5605)
Sasha Semennikov [Fri, 3 Jun 2016 17:45:48 +0000 (10:45 -0700)]
Reduce memory leak for issue #1379
Remove unused header
Use proper exception-handling macroses
Fix build issues
Squash commits
Aditya Mandaleeka [Wed, 8 Jun 2016 20:06:42 +0000 (13:06 -0700)]
Merge pull request #5586 from adityamandaleeka/osx_strip_debug
Strip debugging symbol table entries on OS X Release builds
Mike Danes [Wed, 8 Jun 2016 19:24:39 +0000 (22:24 +0300)]
Switch to CORINFO_HELP_NEW_MDARR_NONVARARG