RFR: 8278146: G1: Rework VM_G1Concurrent VMOp to clearly identify it as pause

Aleksey Shipilev shade at openjdk.java.net
Thu Dec 2 18:32:37 UTC 2021


Our support engineers asked this:

> I see these G1Concurrent safepoints in JDK17:
> [0.064s][info][safepoint ] Safepoint "G1Concurrent", Time since last: 1666947 ns, Reaching
safepoint: 79150 ns, At safepoint: 349999 ns, Total: 429149 ns
> I've always thought that "concurrent" and "safepoint" are basically antonyms.
> What is a G1Concurrent safepoint? How can a concurrent event require a safepoint?

I agree that's confusing. This patch splits the VM_G1Concurrent into two exactly named VMOp-s, so that we get:


[6.527s][info][gc       ] GC(7) Pause Remark 64M->64M(224M) 218.847ms
[6.527s][info][safepoint] Safepoint "G1PauseRemark", Time since last: 17493991 ns, Reaching safepoint: 506830 ns, At safepoint: 218950374 ns, Total: 219457204 ns
[6.536s][info][gc       ] GC(7) Pause Cleanup 71M->71M(224M) 0.177ms
[6.536s][info][safepoint] Safepoint "G1PauseCleanup", Time since last: 8250157 ns, Reaching safepoint: 884967 ns, At safepoint: 223964 ns, Total: 1108931 ns
[6.537s][info][gc       ] GC(7) Concurrent Mark Cycle 247.051ms


Additional testing:
 - [x] Linux x86_64 fastdebug `tier1`

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

Commit messages:
 - Whitespace and touchups
 - Basic implementation

Changes: https://git.openjdk.java.net/jdk/pull/6677/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=6677&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8278146
  Stats: 69 lines in 4 files changed: 33 ins; 27 del; 9 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6677.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6677/head:pull/6677

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


More information about the hotspot-dev mailing list