diff --git a/mmtk/Cargo.toml b/mmtk/Cargo.toml index ba91f9d5..29e28a66 100644 --- a/mmtk/Cargo.toml +++ b/mmtk/Cargo.toml @@ -30,7 +30,7 @@ once_cell = "1.10.0" # - change branch # - change repo name # But other changes including adding/removing whitespaces in commented lines may break the CI. -mmtk = { git = "https://github.com/mmtk/mmtk-core.git", rev = "2ec37bde7955304f3e4bc5f7bed3fbfba3833cc0" } +mmtk = { git = "https://github.com/mmtk/mmtk-core.git", rev = "f1a0bb7fbec97dd84e35a40e8be01cf5018f2f9e" } # Uncomment the following to build locally # mmtk = { path = "../repos/mmtk-core" } diff --git a/mmtk/src/lib.rs b/mmtk/src/lib.rs index d4847d5c..e501c64f 100644 --- a/mmtk/src/lib.rs +++ b/mmtk/src/lib.rs @@ -98,8 +98,8 @@ pub struct OpenJDK_Upcalls { pub referent_offset: extern "C" fn() -> i32, pub discovered_offset: extern "C" fn() -> i32, pub dump_object_string: extern "C" fn(object: ObjectReference) -> *const c_char, - pub scan_all_thread_roots: extern "C" fn(closure: EdgesClosure), - pub scan_thread_roots: extern "C" fn(closure: EdgesClosure, tls: VMMutatorThread), + pub scan_roots_in_all_mutator_threads: extern "C" fn(closure: EdgesClosure), + pub scan_roots_in_mutator_thread: extern "C" fn(closure: EdgesClosure, tls: VMMutatorThread), pub scan_universe_roots: extern "C" fn(closure: EdgesClosure), pub scan_jni_handle_roots: extern "C" fn(closure: EdgesClosure), pub scan_object_synchronizer_roots: extern "C" fn(closure: EdgesClosure), diff --git a/mmtk/src/scanning.rs b/mmtk/src/scanning.rs index 17192e9c..aa1a5dba 100644 --- a/mmtk/src/scanning.rs +++ b/mmtk/src/scanning.rs @@ -58,20 +58,23 @@ impl Scanning for VMScanning { // TODO } - fn scan_thread_roots(_tls: VMWorkerThread, mut factory: impl RootsWorkFactory) { + fn scan_roots_in_all_mutator_threads( + _tls: VMWorkerThread, + mut factory: impl RootsWorkFactory, + ) { unsafe { - ((*UPCALLS).scan_all_thread_roots)(to_edges_closure(&mut factory)); + ((*UPCALLS).scan_roots_in_all_mutator_threads)(to_edges_closure(&mut factory)); } } - fn scan_thread_root( + fn scan_roots_in_mutator_thread( _tls: VMWorkerThread, mutator: &'static mut Mutator, mut factory: impl RootsWorkFactory, ) { let tls = mutator.get_tls(); unsafe { - ((*UPCALLS).scan_thread_roots)(to_edges_closure(&mut factory), tls); + ((*UPCALLS).scan_roots_in_mutator_thread)(to_edges_closure(&mut factory), tls); } } diff --git a/openjdk/mmtk.h b/openjdk/mmtk.h index 1f6076ce..88c96d49 100644 --- a/openjdk/mmtk.h +++ b/openjdk/mmtk.h @@ -163,8 +163,8 @@ typedef struct { int (*referent_offset) (); int (*discovered_offset) (); char* (*dump_object_string) (void* object); - void (*scan_all_thread_roots)(EdgesClosure closure); - void (*scan_thread_roots)(EdgesClosure closure, void* tls); + void (*scan_roots_in_all_mutator_threads)(EdgesClosure closure); + void (*scan_roots_in_mutator_thread)(EdgesClosure closure, void* tls); void (*scan_universe_roots) (EdgesClosure closure); void (*scan_jni_handle_roots) (EdgesClosure closure); void (*scan_object_synchronizer_roots) (EdgesClosure closure); diff --git a/openjdk/mmtkHeap.cpp b/openjdk/mmtkHeap.cpp index 6a573f74..4197f64d 100644 --- a/openjdk/mmtkHeap.cpp +++ b/openjdk/mmtkHeap.cpp @@ -415,7 +415,7 @@ void MMTkHeap::scan_vm_thread_roots(OopClosure& cl) { VMThread::vm_thread()->oops_do(&cl, NULL); } -void MMTkHeap::scan_thread_roots(OopClosure& cl) { +void MMTkHeap::scan_roots_in_all_mutator_threads(OopClosure& cl) { ResourceMark rm; Threads::possibly_parallel_oops_do(false, &cl, NULL); } diff --git a/openjdk/mmtkHeap.hpp b/openjdk/mmtkHeap.hpp index 55369244..e01dfaf9 100644 --- a/openjdk/mmtkHeap.hpp +++ b/openjdk/mmtkHeap.hpp @@ -195,7 +195,7 @@ class MMTkHeap : public CollectedHeap { void scan_roots(OopClosure& cl); - void scan_thread_roots(OopClosure& cl); + void scan_roots_in_all_mutator_threads(OopClosure& cl); void scan_universe_roots(OopClosure& cl); void scan_jni_handle_roots(OopClosure& cl); diff --git a/openjdk/mmtkUpcalls.cpp b/openjdk/mmtkUpcalls.cpp index 7059a0ca..5f1350d0 100644 --- a/openjdk/mmtkUpcalls.cpp +++ b/openjdk/mmtkUpcalls.cpp @@ -184,12 +184,12 @@ static void mmtk_get_mutators(MutatorClosure closure) { } } -static void mmtk_scan_all_thread_roots(EdgesClosure closure) { +static void mmtk_scan_roots_in_all_mutator_threads(EdgesClosure closure) { MMTkRootsClosure2 cl(closure); - MMTkHeap::heap()->scan_thread_roots(cl); + MMTkHeap::heap()->scan_roots_in_all_mutator_threads(cl); } -static void mmtk_scan_thread_roots(EdgesClosure closure, void* tls) { +static void mmtk_scan_roots_in_mutator_thread(EdgesClosure closure, void* tls) { ResourceMark rm; JavaThread* thread = (JavaThread*) tls; MMTkRootsClosure2 cl(closure); @@ -334,8 +334,8 @@ OpenJDK_Upcalls mmtk_upcalls = { referent_offset, discovered_offset, dump_object_string, - mmtk_scan_all_thread_roots, - mmtk_scan_thread_roots, + mmtk_scan_roots_in_all_mutator_threads, + mmtk_scan_roots_in_mutator_thread, mmtk_scan_universe_roots, mmtk_scan_jni_handle_roots, mmtk_scan_object_synchronizer_roots,