HeapRegion's _scan_top serves the single purpose that during garbage collection we do not try to scan areas that are potentially being allocated into at the moment.
This enhancement suggests to remove _scan_top from HeapRegion and take a snapshot of top() values at start of GC.
This removes potentially slow access to top/scan_top during GC as we need to serialize using a loadload barrier.
Additionally, the "new" scan_top information can be subsumed with the cascade of if's that refinement during GC needs to do otherwise.
Incidentally doing all that improves update rs/scan rs times in benchmarks.
This enhancement suggests to remove _scan_top from HeapRegion and take a snapshot of top() values at start of GC.
This removes potentially slow access to top/scan_top during GC as we need to serialize using a loadload barrier.
Additionally, the "new" scan_top information can be subsumed with the cascade of if's that refinement during GC needs to do otherwise.
Incidentally doing all that improves update rs/scan rs times in benchmarks.
- relates to
-
JDK-8179679 Rearrange filters before card scanning
-
- Resolved
-