RFR (S): 8027295: Free CSet takes ~50% of young pause time

Thomas Schatzl thomas.schatzl at oracle.com
Mon Feb 24 03:40:13 PST 2014


Hi all,

  can I have reviews for the remaining parts of 8027295 after splitting
out code cache remembered set data structure changes (JDK-8025406)?

It only includes several smaller changes around CSet freeing that
improve performance.

Note that this change is based on 8035406 also out for review

Changes: 

- fast card cache changes
  - pad FCC rows to cache line size to avoid any false sharing (every
row represents the card cache for a single worker thread)
  - fixed (the surprising) main performance problem in FCC clearing by
simply factoring out the call to HeapRegionRemSet::num_par_rem_sets()
from the clear loop
  - a future change will extract the FCC into a separate class as
cleanup (JDK-8034868)

- some interface changes to avoid locking mutexes unnecessarily during
cleanup (seems to give 3% Free CSet time on TOPLINK)
  - i.e. the "locked" parameter for G1CollectedHeap::free_region().

- added new statistics output separating young/nonyoung free cset time
when G1LogLevel is set to finest

CR:
https://bugs.openjdk.java.net/browse/JDK-8027295

Webrev:
http://cr.openjdk.java.net/~tschatzl/8027295/webrev.2/

Testing:
JPRT

Thanks,
  Thomas




More information about the hotspot-gc-dev mailing list