summaryrefslogtreecommitdiff
path: root/src/vm/gchelpers.cpp
AgeCommit message (Collapse)AuthorFilesLines
2019-04-03Remove ADID and ADIndex from CoreCLR (#23588)David Wrighton1-14/+7
- Remove concept of AppDomain from object api in VM - Various infrastructure around entering/leaving appdomains is removed - Add small implementation of GetAppDomain for use by DAC (to match existing behavior) - Simplify finalizer thread operations - Eliminate AppDomain::Terminate - Remove use of ADID from stresslog - Remove thread enter/leave tracking from AppDomain - Remove unused asm constants across all architectures - Re-order header inclusion order to put gcenv.h before handletable - Remove retail only sync block code involving appdomain index
2019-03-18Add Utf8String skeleton (#23209)Levi Broderick1-0/+77
Utf8String is an experimental type that is string-like (heap-allocated, immutable, variable-length, null-terminated) but whose inner representation is UTF-8, not UTF-16. This is a skeleton implementation of the basic API shape. The ecosystem of APIs has not yet been built around it. All Utf8String-related code is currently surrounded by ifdefs to allow easy identification and removal from release branches.
2019-01-23Remove all traces of FEATURE_STACK_PROBE. (#22149)Filip Navara1-42/+0
2018-12-26desktop port (#21523)Maoni Stephens1-6/+6
+alloc lock split into SOH and LOH +provisional mode to fix too many gen2 GCs triggered in low mem situation when the heap has heavy pinning fragmentation +better free list usage +premature OOM fixes +3 new configs: GCHeapAffinitizeMask, GCHighMemPercent, GCLOHThreshold (will be documented) YieldProcessor scaling factor is different on core due to the different implementation on core.
2018-08-11[local gc] disable feature redhawk (#17769)David Mason1-4/+12
2018-01-21Remove AppDomainLeaks configuration option (#15956)antofik1-20/+0
Removed all usages of AppDomainLeaks configuration option and CHECK_APP_DOMAIN_LEAKS feature Fix #12094
2017-06-26Replace array type handle with method table in arguments of array allocation ↵Ruben Ayrapetyan1-16/+34
helpers (#12369) * Remove direct usage of type handle in JIT_NewArr1, with except of retrieving template method table. * Assert that array type descriptor is loaded when array object's method table is set. * Pass template method tables instead of array type descriptors to array allocation helpers.
2017-03-25Typo correction (#10482)Ofer Zelig1-1/+1
2017-03-16[Local GC] Break EE dependency on GC's generation table and alloc lock in ↵Sean Gillespie1-7/+117
single-proc scenarios (#10065) * Remove usage of the generation table from the EE by introducing an EE-owned GC alloc context used for allocations on single-proc machines. * Move the GC alloc lock to the EE side of the interface * Repair the Windows ARM build * Move the decision to use per-thread alloc contexts to the EE * Rename the lock used by StartNoGCRegion and EndNoGCRegion to be more indicative of what it is protecting * Address code review feedback 2 (enumerate the global alloc context as a part of GCToEEInterface) * Code review feedback (3) * Address code review feedback (move some GC-internal globals to gcimpl.h and gc.cpp) * g_global_alloc_lock is a dword, not a qword - fixes a deadlock * Move GlobalAllocLock to gchelpers.cpp and switch to preemptive mode when spinning * Repair the Windows x86 build
2017-03-09Improve span copy of pointers and structs containing pointers (#9999)Koundinya Veluri1-80/+5
Improve span copy of pointers and structs containing pointers Fixes #9161 PR #9786 fixes perf of span copy of types that don't contain references
2017-03-01Merge pull request #9770 from adityamandaleeka/card_bundles_unix_2Aditya Mandaleeka1-7/+63
Implement second-level card tables for non-Windows platforms
2017-02-28Implement card bundles for non-Windows platforms.Aditya Mandaleeka1-7/+63
2017-02-12Remove never defined FEATURE_CER and headerdanmosemsft1-5/+0
2017-01-06[Local GC] Move Software Write Watch's write barrier updates to ↵Sean Gillespie1-9/+90
GCToEEInterface::StompWriteBarrier (#8605) * Move Software Write Watch's write barrier updates to use the new GCToEEInterface::StompWriteBarrier to stomp the EE's write barrier. * Address code review feedback, move SetCardsAfterBulkCopy to EE side of the interface
2016-11-29Disable CER feature as it is not used (#8218)John Chen1-0/+2
Use FEATURE_CER to scope CER code, and disable CER feature in CoreCLR.
2016-10-07Return null on allocation failure due to OOM instead of throwing a exception ↵Sean Gillespie1-0/+55
from within the GC (#7501)
2016-09-08Introduce an interface separating the GC and the VM,Sean Gillespie1-16/+16
modifying the VM to utilize this interface. Introduce an interface separating the GC and the rest of the VM Remove static members of both IGCHeap and IGCHeapInternal and move the management of the singular GC heap to the VM. Rename uses of IGCHeap in the VM to GCHeapHolder, as well as other misc. renames throughout the VM and GC. Split each interface function into categories, document them, use consistent formatting across the interface Undo some accidental find/replace collateral damage Remove all ifdefs from the GC interface Deduplicate function declarations between IGCHeap and IGCHeapInternal, expose AllocAlign8 through the interface and the reference to alloc_context to repair the ARM build Paper cut: false -> nullptr Repair the ARM and x86 builds Rename GCHeapHolder -> GCHeapUtilities and address documentation feedback Rebase against master Rename gcholder.h/cpp -> gcheaputilities.h/cpp Fix an uninitialized field on alloc_context causing test failures on clang Rename the include guard for gcheaputilities.h Un-breaks SOS by making the following changes: 1) Instructs the DAC to look for IGCHeap::gcHeapType by name, instead of assuming that it exists near g_pGCHeap, 2) Eliminate all virtual calls on IGCHeap in the DAC, since we cannot dispatch on an object in another process, 3) Because of 2, expose the number of generations past the GC interface using a static variable on IGCHeap that the DAC can read directly. repair the Windows build
2016-05-03Revert "Fix array allocation bounds checking."Aditya Mandaleeka1-17/+2
This reverts commit 16c9dfbae5e5ce18ad0519b31df515820fed2579.
2016-05-02Fix array allocation bounds checking.Aditya Mandaleeka1-2/+17
2016-04-12Implement software write watch and make concurrent GC functional outside WindowsKoundinya Veluri1-1/+30
- Implemented software write watch using write barriers - A new set of write barriers is introduced, each corresponding to an existing one, but which also updates the write watch table. The GC switches to a write watch barrier during concurrent GC, and switches back to a non write watch barrier after the final query for dirty pages. - The write watch table is alloacted along with the card table - Since the card table is used differently, different synchonization is used for the write watch table. The runtime is suspended during resize since that is the most infrequently occuring operation, of that, ResetWriteWatch, and GetWriteWatch. - ResetWriteWatch() doesn't need a suspend, but since the software WW version is much faster than the Windows version, moved it into the suspended region to avoid some synchronization that would otherwise be required - The background calls to GetWriteWatch() don't need or do a suspend. They only need to synchronize with the resize path, not for the purpose of correct functionality, but to not miss dirty pages such that concurrent GC is effective. Miscellaneous: - Fixed runtests.sh to copy mscorlib.dll and delete the Windows version of mscorlib.ni.dll
2016-01-27Update license headersdotnet-bot1-4/+3
2015-12-21Enable checked builds of CoreCLR.Eugene Rozenfeld1-1/+1
In checked builds coreclr, mscorlib, and the test are built optimized but assertion checking is on. This adds additional coverage (the jit is optimizing and assertion checking is on), speeds up testing compared to debug, and allows testing JIT stress modes. This doesn't affect CoreFX. Several tests are currently failing in checked configuration due to newly discovered bugs (JIT asserts). We didn't see these asserts in debug mode because by default JIT is in minopt mode; we didn't see these bugs in release mode because assertion checking is off. I will file the bugs once checked build changes are in.
2015-01-30Initial commit to populate CoreCLR repo dotnet-bot1-0/+1334
[tfs-changeset: 1407945]