RFR: 8278146: G1: Rework VM_G1Concurrent VMOp to clearly identify it as pause
Thomas Schatzl
tschatzl at openjdk.java.net
Mon Dec 6 15:37:16 UTC 2021
On Thu, 2 Dec 2021 18:22:56 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> 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`
Changes requested by tschatzl (Reviewer).
src/hotspot/share/gc/g1/g1VMOperations.hpp line 91:
> 89: // Concurrent G1 stop-the-world operations such as remark and cleanup.
> 90: class VM_G1PauseConcurrent : public VM_Operation {
> 91: private:
This `private` visibility specifier could be removed.
src/hotspot/share/gc/g1/g1VMOperations.hpp line 91:
> 89: // Concurrent G1 stop-the-world operations such as remark and cleanup.
> 90: class VM_G1PauseConcurrent : public VM_Operation {
> 91: private:
This `private` visibility specifier could be removed.
src/hotspot/share/gc/g1/g1VMOperations.hpp line 103:
> 101: virtual void doit_epilogue();
> 102: virtual void doit();
> 103: virtual void work() = 0;
Please make `work()` protected - there does not seem to be a need to make it public.
-------------
PR: https://git.openjdk.java.net/jdk/pull/6677
More information about the hotspot-dev
mailing list