RFR: 8254167 G1: Record regions where evacuation failed to provide targeted iteration [v2]

Hamlin Li mli at openjdk.java.net
Sat Aug 28 13:50:50 UTC 2021


> This is another try to optimize evcuation failure for regions.
> I record evacuation failed regions, and iterate these regions directly rather than iterate the whole cset.
> The implementation reuses and refactors some of the existing data in g1CollectedHeap (_regions_failed_evacuation, _num_regions_failed_evacuation), and records these regions in an array, and iterate this array later in post evacuation phase.
> 
> I have 2 implementations:
> 
> - 1) CHT (Initial version)
> - 2) bitmap (latest version, reuse _regions_failed_evacuation in g1CollectedHeap)
> 
> This implementation does not consider work distribution as mentioned in JDK-8254167 yet. But seems it already get better&stable performance gain than origin. We could improve it further later if work distribution is necessary.
> 
> I will attach the perf data in JBS.

Hamlin Li has updated the pull request incrementally with one additional commit since the last revision:

  reuse original bitmap rather than CHT

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/5272/files
  - new: https://git.openjdk.java.net/jdk/pull/5272/files/c6cde28c..c790b720

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=5272&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=5272&range=00-01

  Stats: 84 lines in 2 files changed: 18 ins; 52 del; 14 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5272.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5272/head:pull/5272

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



More information about the hotspot-gc-dev mailing list