Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
8246433: Shenandoah: walk roots in more efficient order in Shenandoah…
…RootUpdater

Reviewed-by: zgu
  • Loading branch information
shipilev committed Jun 3, 2020
1 parent 26a1841 commit 1314ca87c1a06d4b7ea8d870d0e2aad0f4e987a6
Showing with 8 additions and 5 deletions.
  1. +8 −5 src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp
@@ -239,16 +239,19 @@ void ShenandoahRootUpdater::roots_do(uint worker_id, IsAlive* is_alive, KeepAliv

CLDToOopClosure clds(keep_alive, ClassLoaderData::_claim_strong);

// Process serial-claiming roots first
_serial_roots.oops_do(keep_alive, worker_id);
_vm_roots.oops_do(keep_alive, worker_id);
_serial_weak_roots.weak_oops_do(is_alive, keep_alive, worker_id);

// Process light-weight/limited parallel roots then
_vm_roots.oops_do(keep_alive, worker_id);
_weak_roots.weak_oops_do(is_alive, keep_alive, worker_id);
_dedup_roots.oops_do(is_alive, keep_alive, worker_id);
_cld_roots.cld_do(&clds, worker_id);

// Process heavy-weight/fully parallel roots the last
_code_roots.code_blobs_do(codes_cl, worker_id);
_thread_roots.oops_do(keep_alive, NULL, worker_id);

_serial_weak_roots.weak_oops_do(is_alive, keep_alive, worker_id);
_weak_roots.weak_oops_do(is_alive, keep_alive, worker_id);
_dedup_roots.oops_do(is_alive, keep_alive, worker_id);
}

#endif // SHARE_GC_SHENANDOAH_SHENANDOAHROOTPROCESSOR_INLINE_HPP

0 comments on commit 1314ca8

Please sign in to comment.