Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
074487c
Replace HashMap COOP transitions with Epoch-Based Reclamation (EBR)
AaronRobinsonMSFT Feb 11, 2026
55708d0
EBR cleanup: naming, scoping, and style improvements
AaronRobinsonMSFT Feb 12, 2026
73168b4
Refactor EbrPendingEntry structure: move definition from ebr.h to ebr…
AaronRobinsonMSFT Feb 12, 2026
d6acf4e
Update src/coreclr/vm/hash.cpp
AaronRobinsonMSFT Feb 12, 2026
cfedbdf
Fix EBR QueueForDeletion OOM safety and Rehash GetSize misuse
AaronRobinsonMSFT Feb 13, 2026
c7dfb9b
Address PR feedback: Shutdown guard, simplified asserts, comment fixes
AaronRobinsonMSFT Feb 13, 2026
fc4aece
Clean up per-thread EBR state on thread exit
AaronRobinsonMSFT Feb 13, 2026
4377813
Use thread_local value for EbrThreadData instead of heap allocation
AaronRobinsonMSFT Feb 13, 2026
6aa1f2c
Fix contracts
AaronRobinsonMSFT Feb 13, 2026
5c554da
Centralize bucket allocation with AllocateBuckets/FreeBuckets
AaronRobinsonMSFT Feb 14, 2026
a4f7ee6
Move free calls outside lock and add EbrPendingEntry constructor
AaronRobinsonMSFT Feb 14, 2026
98852e9
Move EBR reclamation to finalizer thread
AaronRobinsonMSFT Feb 14, 2026
958ce3a
Add STANDARD_VM_CONTRACT to NativeImage::Initialize and update Crst i…
AaronRobinsonMSFT Feb 17, 2026
6657f0c
Refactor EBR shutdown handling and improve bucket management in HashMap
AaronRobinsonMSFT Feb 17, 2026
ae84468
Enhance EBR thread detachment handling and add preemption for reclama…
AaronRobinsonMSFT Feb 17, 2026
a3040db
Make EBR thread list insert lock-free with lazy deletion
AaronRobinsonMSFT Feb 18, 2026
07473cc
Heap-allocate EbrThreadData with TLS destructor for cleanup
AaronRobinsonMSFT Feb 18, 2026
434ed79
Refactor EbrThreadData management to use thread-local instance and si…
AaronRobinsonMSFT Feb 18, 2026
48add32
Apply suggestions from code review
AaronRobinsonMSFT Feb 19, 2026
b575e02
Remove unused header
AaronRobinsonMSFT Feb 19, 2026
cdafcc1
Fix EBR comments and remove Ebr Crst types
AaronRobinsonMSFT Feb 19, 2026
2367317
Remove unnecessary full fence make all loads/stores explicit.
AaronRobinsonMSFT Feb 19, 2026
a6e1d92
Fix CrstFlags usage and reset thread EBR data in ThreadDetach
AaronRobinsonMSFT Feb 20, 2026
83f2176
Enhance EbrCollector: Add DetachedCollector, improve thread detach ha…
AaronRobinsonMSFT Feb 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/coreclr/vm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ set(VM_SOURCES_DAC_AND_WKS_COMMON
disassembler.cpp
domainassembly.cpp
dynamicmethod.cpp
ebr.cpp
ecall.cpp
eedbginterfaceimpl.cpp
eehash.cpp
Expand Down Expand Up @@ -169,6 +170,7 @@ set(VM_HEADERS_DAC_AND_WKS_COMMON
disassembler.h
domainassembly.h
dynamicmethod.h
ebr.h
ecall.h
eedbginterfaceimpl.h
eedbginterfaceimpl.inl
Expand Down
5 changes: 5 additions & 0 deletions src/coreclr/vm/ceemain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@
#include "clsload.hpp"
#include "object.h"
#include "hash.h"
#include "ebr.h"
#include "ecall.h"
#include "ceemain.h"
#include "dllimport.h"
Expand Down Expand Up @@ -786,6 +787,10 @@ void EEStartupHelper()
// Cache the (potentially user-overridden) values now so they are accessible from asm routines
InitializeSpinConstants();

// Initialize EBR (Epoch-Based Reclamation) for HashMap's async mode.
// This must be done before any HashMap is initialized with fAsyncMode=TRUE.
g_HashMapEbr.Init();

StubManager::InitializeStubManagers();

// Set up the cor handle map. This map is used to load assemblies in
Expand Down
Loading
Loading