summaryrefslogtreecommitdiff
path: root/src/gc/handletablecore.cpp
AgeCommit message (Collapse)AuthorFilesLines
2019-06-11Port typo fixes from CoreRTSuchiman1-8/+8
2019-05-15Remove concept of AppDomains from the GC (#24536)David Wrighton1-544/+0
* Remove concept of AppDomains from the GC - Leave constructs allowing for multiple handle tables, as scenarios for that have been proposed - Remove FEATURE_APPDOMAIN_RESOURCE_MONITORING
2019-05-14Fix issues reported by PREfast static analysis tool (#24577)Jan Kotas1-2/+2
2018-10-08Fix SegmentInitialize for OS_PAGE_SIZE > 4k (#20280)Jan Vorlicek1-4/+1
The function was incorrectly rounding the dwCommit down instead of up to OS_PAGE_SIZE. It accidentally works for OSes where page size is 4096 bytes, because the dwCommit is 4096. But for ARM64 Linux distros where the page size is 64kB, this was committing zero bytes and so the runtime initialization was crashing a bit later when it tried to access the memory it was supposed to be commited. This problem was introduced in #17769.
2018-10-04Typos (#20271)John Doe1-1/+1
* oportunistically -> opportunistically * oppportunity -> opportunity * Oppporunity -> Opportunity * optinal -> optional * optimisitic -> optimistic * optionaly -> optionally * origianl -> original * orignally -> originally * otheriwse -> otherwise * otherrwise -> otherwise
2018-08-25Remove NumaNodeInfo, CPUGroupInfo, AppDomain, SystemDomain, and EEConfig ↵David Mason1-1/+1
stubs from local gc (#19500) * Switch NumaNodeInfo and CPUGroupInfo to the interface * Remove AppDomain/SystemDomain stubs * remove EEConfig methods * Port numa code to the coreclr side * add numa back to PAL and standalone builds * enable numa for PAL/Standalone builds, and fix BOOL warnings * remove unused defines, and fix linux build errors * building on windows * about to delete numa work from unix and want a backup * add stubs for unix numa/cpugroup * Code review feedback * Code review feedback
2018-08-11[local gc] disable feature redhawk (#17769)David Mason1-8/+0
2017-12-13Revert " Revert "[Local GC] Move knowledge of overlapped I/O objects to the ↵Jan Kotas1-44/+20
EE through four callbacks (#14982)""
2017-12-12Revert "[Local GC] Move knowledge of overlapped I/O objects to the EE ↵Sean Gillespie1-20/+44
through four callbacks (#14982)" This reverts commit c755e3b7f5d597c8d192675dbaaa337268d93f1c.
2017-11-27[Local GC] Move knowledge of overlapped I/O objects to the EE through four ↵Sean Gillespie1-44/+20
callbacks (#14982) * [Local GC] Move knowledge of overlapped I/O objects to the EE through four callbacks * Code review feedback: 1. Rename OverlappedData->AsyncPinned in interface methods 2. Remove additional FEATURE_REDHAWK defines around async pin relocation code * Eliminate two GCToEEInterface callbacks by passing the callbacks directly as arguments to a method on IGCHandleStore * Repair clang build * Split pin and async pin handle scans into two separate callbacks * Fix the clang and non-Windows builds
2017-08-22[Local GC] Enable building the GC as a shared library (#13137)Sean Gillespie1-0/+1
* [Local GC] Build the GC using system headers * Disable features to get the GC to build * Get rid of the separate 'GC PAL' build * Remove unused stuff * Don't build gcenv.os.cpp when linking in a standalone gc * Stub out CPUGroupInfo and NumaNodeInfo * Stub out IsGCThread and friends * Build the GC as a shared library :tada: * Build, link, and run! :tada: * Fix standalone GC build break * Fixes where the GC's MethodTable and VM's MethodTable classes disagree * Integrate a standalone GC into the CoreCLR build system (so it gets copied to the output folder). Re-enable some ifdef-ed out includes that are required for a non-standalone build of the GC. * Bring changes to Unix and fix the Unix build. Implement some compiler intrinsic wrappers and alignment functions expected by the GC. * Fix the Windows build * 1. Code review feedback: use standard types for BitScanForward and BitScanForward64 2. Delete FEATURE_COM stuff from the build system, not needed for this PR 3. Fix the Unix build * Fix the Windows x86 build - the _BitScanForward64 intrinsic is not available when targeting 32-bit platforms * Remove a number of things from gcenv.base.h that are not used * Remove a linker workaround now that we are not linking a standalone GC into the runtime * Remove dead code, make the lack of GC_PROFILING for standalone gc not break profiling on the non-standalone build * Code review feedback - use add_library_clr and other cmake-related fixes * Fix include indentation * Remove some extraneous parameters to cmake functions (cmake is remarkably lenient...)
2017-06-01[Local GC] Remove uses of g_SystemInfo from the GC (#11628)Sean Gillespie1-6/+6
* [Local GC] Don't use g_SystemInfo to infer the number of processors * [Local GC] Avoid using g_SystemInfo.dwAllocationGranularity from within the GC. In a few places, the GC aligns the size of a request memory reservation to the allocation granularity before calling GCToOSInterface::VirtualReserve. Upon inspection, this isn't necessary. * [Local GC] Remove uses of g_SystemInfo from the handle table * Add new API on GCToOSInterface for querying the total number of procs on the machine
2017-06-01[Local GC] Add async pinned handle methods to the handle interface (#11569)Sean Gillespie1-7/+6
* [Local GC] Add async pinned handle methods to the handle interface * Add a callback to HandleAsyncPinnedHandles for handle enumeration * Rename HandleAsyncPinnedHandles -> EnumerateAsyncPinnedHandles * Introduce typedef for function pointer type
2017-05-01Fix rgTail corruption in rare scavenging cases [Desktop port]. (#11327)Aditya Mandaleeka1-0/+26
2017-04-24[Local GC] Ensure that handle creation returns null on failure instead of ↵Sean Gillespie1-15/+20
throwing (#11092) * [Local GC] Ensure that handle creation returns null on failure instead of throwing * Fix some clang pedantry about jumping past variable initialization * Throw OOM if initialization of handle store fails * Perform the handle OOM check in each handle helper
2017-04-13Make a GCHandleStore class and interface for use by the VM.Aditya Mandaleeka1-1/+2
2016-11-16Enable GCToOSInterface to be defined on the GC side of the GC interface (#8121)Sean Gillespie1-1/+1
* Re-introduce changes lost in a merge conflict * Enable GCToOSInterface to be defined behind the GC interface when building the GC in standalone mode. Provide a skeleton Windows implementation and the framework for a Unix implementation. * Address code review feedback
2016-09-15Update the GC from CoreRT (#7207)Sean Gillespie1-2/+2
2016-09-08Introduce an interface separating the GC and the VM,Sean Gillespie1-2/+3
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-02-24Update GC from CoreRTJan Kotas1-2/+2
https://github.com/dotnet/corert/tree/master/src/Native/gc d18f7e5d9fea784b4531aa8988fdad9f3a9cffc3
2016-01-27Update license headersdotnet-bot1-4/+3
2016-01-21Reduce clr startup noise when using Clang sanitizersSteve Harter1-4/+6
2015-12-24GC OS interface refactoringJan Vorlicek1-6/+6
This change replaces all calls of OS specific functions in the GC by a call to a platform agnostic interface. Critical sections were abstracted too. The logging file access was changed to use CRT functions instead of Windows specific APIs. A "size" member was added to the card_table_info so that we can pass the right size to the VirtualRelease method when destroying the card table. I have also fixed a bug in the gc_heap::make_card_table error path where when VirtualCommit failed, it called VirtualRelease with size that was not the reserved size, but the committed size. Other related changes - All interlocked operations moved to Interlocked class as static methods - Removed unused function prototypes - Shuffled stuff in the root CMakeLists.txt to enable building the GC sample using the settings inherited from the root CMakeLists.txt and to clean up some things that have rotted over time, like the FEATURE_xxx macros not being in one alphabetically ordered block - Fixed the VOLATILE_MEMORY_BARRIER macro in the gcenv.base.h - Replaced uint32_t thread id by EEThreadId - Removed thread handles storage (g_gc_thread) from the GC. The thread handle is closed right after the thread is launched. That allowed me to get rid of the GCThreadHandle - Renamed the methods of the EEThreadId to be easier to understand - Moved the gcenv.windows.cpp and gcenv.unix.cpp to the sample folder
2015-11-19Update GC from CoreRTJan Kotas1-0/+4
https://github.com/dotnet/corert/tree/master/src/Native/gc c03d823a11f54e734e340813e6cd1e543ca448ef
2015-11-19Some formatting cleanupJan Vorlicek1-4/+4
Code formatting (alignment) needs to be fixed at few places.
2015-11-19Replaced remaining typesJan Vorlicek1-13/+13
LPARAM, SSIZE_T
2015-11-18Replace most windows style types by c++ typesJan Vorlicek1-186/+186
This change replaces DWORD, LONGLONG, ULONGLONG, SIZE_T, BYTE, LONG32 and few more by standard c++ types. The DWORD still remains present in signatures of Windows APIs used by the GC. There are few issues with those that need to get fixed.
2015-01-30Initial commit to populate CoreCLR repo dotnet-bot1-0/+2767
[tfs-changeset: 1407945]