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