mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-16 00:54:38 +02:00
8048268: G1 Code Root Migration performs poorly
Replace G1CodeRootSet with a Hashtable based implementation, merge Code Root Migration phase into Code Root Scanning Reviewed-by: jmasa, brutisso, tschatzl
This commit is contained in:
parent
6fc8764c65
commit
10379e7e82
17 changed files with 437 additions and 677 deletions
|
@ -540,21 +540,17 @@ void HeapRegion::add_strong_code_root(nmethod* nm) {
|
|||
hrrs->add_strong_code_root(nm);
|
||||
}
|
||||
|
||||
void HeapRegion::add_strong_code_root_locked(nmethod* nm) {
|
||||
assert_locked_or_safepoint(CodeCache_lock);
|
||||
HeapRegionRemSet* hrrs = rem_set();
|
||||
hrrs->add_strong_code_root_locked(nm);
|
||||
}
|
||||
|
||||
void HeapRegion::remove_strong_code_root(nmethod* nm) {
|
||||
HeapRegionRemSet* hrrs = rem_set();
|
||||
hrrs->remove_strong_code_root(nm);
|
||||
}
|
||||
|
||||
void HeapRegion::migrate_strong_code_roots() {
|
||||
assert(in_collection_set(), "only collection set regions");
|
||||
assert(!isHumongous(),
|
||||
err_msg("humongous region "HR_FORMAT" should not have been added to collection set",
|
||||
HR_FORMAT_PARAMS(this)));
|
||||
|
||||
HeapRegionRemSet* hrrs = rem_set();
|
||||
hrrs->migrate_strong_code_roots();
|
||||
}
|
||||
|
||||
void HeapRegion::strong_code_roots_do(CodeBlobClosure* blk) const {
|
||||
HeapRegionRemSet* hrrs = rem_set();
|
||||
hrrs->strong_code_roots_do(blk);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue