RFR: 8256938: Improve remembered set sampling task scheduling

Stefan Johansson sjohanss at openjdk.java.net
Wed Nov 25 09:42:05 UTC 2020

Please review this change to the remembered set sampling task scheduling.

The sampling tasks joins the suspendible thread set (STS) and if it needs to yield during the sampling it aborts and reschedules. This is the expected behavior and will lead to the sampling happening roughly G1ConcRefinementServiceIntervalMillis after the pause ended. But in the case where the task is started during a GC (can happen since the whole service thread isn't joined to the STS) the sampling will start right after the pause has finished. This enhancement changes this by checking when the last pause occurred and reschedules the task to take place G1ConcRefinementServiceIntervalMillis after the GC ended.

Tier 1-3 and manual verification looking at logs.


Commit messages:
 - 8256938: Improve remembered set sampling task scheduling

Changes: https://git.openjdk.java.net/jdk/pull/1428/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1428&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8256938
  Stats: 30 lines in 1 file changed: 26 ins; 1 del; 3 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1428.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1428/head:pull/1428

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

More information about the hotspot-gc-dev mailing list