Withdrawn: 8272083: G1: Move precise BOT updates in evacuation to concurrent phase

duke duke at openjdk.java.net
Thu Dec 23 21:50:16 UTC 2021


On Sat, 7 Aug 2021 04:56:08 GMT, Yude Lin <duke at openjdk.java.net> wrote:

> Edit:
> We will discuss doing precise BOT update during evacuation in another PR. This PR will be about moving BOT updates from evacuation to concurrent phase, which is the second step in minimizing BOT update cost.
> 
> Original:
> A fix to the problem in 8272083 is to use a per-worker pointer to indicate where the worker has scanned up to, similar to the _scanned_to variable. The difference is this pointer (I call it _iterated_to) records the end of the object and _scanned_to records the end of the scan. Since we always scan with increasing addresses, the end of the latest object scanned is also the address where BOT has fixed up to. So we avoid having to fix below this address when calling block_start(). This implementation approximately reduce the number of calls to set_offset_array() during scan_heap_roots() 2-10 times (in my casual test with -XX:G1ConcRefinementGreenZone=1000000).
> 
> What this approach not solving is random access to BOT. So far I haven't found anything having this pattern.

This pull request has been closed without being integrated.

-------------

PR: https://git.openjdk.java.net/jdk/pull/5039



More information about the hotspot-gc-dev mailing list