RFR: 8350314: Shenandoah: Capture thread state sync times in GC timings [v2]
William Kemper
wkemper at openjdk.org
Tue Feb 25 23:49:53 UTC 2025
On Tue, 25 Feb 2025 23:27:22 GMT, Xiaolong Peng <xpeng at openjdk.org> wrote:
>> The change is to improve the observability of Shenandoah GC, basically there are two changes for Shenandoah GC timings in this PR:
>>
>> 1. Net GC pause timings include the time to propagate GC state to Java threads
>> 2. Add new timing "Propagate GC state" in Shenandoah GC timing logs
>>
>> With the change, the new GC timing log will be like:
>>
>> [11.056s][info][gc,stats ] Concurrent Reset 89 us
>> [11.056s][info][gc,stats ] Pause Init Mark (G) 257 us
>> [11.056s][info][gc,stats ] Pause Init Mark (N) 17 us
>> [11.056s][info][gc,stats ] Update Region States 3 us
>> [11.056s][info][gc,stats ] Propagate GC state 1 us
>> [11.056s][info][gc,stats ] Concurrent Mark Roots 232 us, parallelism: 1.96x
>> [11.056s][info][gc,stats ] CMR: <total> 456 us
>> [11.056s][info][gc,stats ] CMR: Thread Roots 429 us, workers (us): 139, 148, 142, ---, ---, ---,
>> [11.057s][info][gc,stats ] CMR: VM Strong Roots 11 us, workers (us): 8, 3, 0, ---, ---, ---,
>> [11.057s][info][gc,stats ] CMR: CLDG Roots 16 us, workers (us): 16, ---, ---, ---, ---, ---,
>> [11.057s][info][gc,stats ] Concurrent Marking 1304 us, parallelism: 2.33x
>> [11.057s][info][gc,stats ] CM: <total> 3043 us
>> [11.057s][info][gc,stats ] CM: Parallel Mark 3043 us, workers (us): 1023, 1017, 1003, ---, ---, ---,
>> [11.057s][info][gc,stats ] Flush SATB 204 us
>> [11.057s][info][gc,stats ] Pause Final Mark (G) 865 us
>> [11.057s][info][gc,stats ] Pause Final Mark (N) 234 us
>> [11.057s][info][gc,stats ] Finish Mark 129 us, parallelism: 0.01x
>> [11.057s][info][gc,stats ] Propagate GC state 2 us
>> [11.057s][info][gc,stats ] Update Region States 12 us
>> [11.057s][info][gc,stats ] Choose Collection Set 25 us
>> [11.057s][info][gc,stats ] Rebuild Free Set 29 us
>> [11.057s][info][gc,stats ] Concurrent Weak References 67 us, parallelism: 0.25x
>> [11.057s][info][gc,stats ] CWRF: <total> 17 us
>> [11.057s][info][gc,stats ] CWRF: Weak References 17 us, workers (us): 15, 1, 0, ---, ---, ---,
>> [11.057s][info][gc,stats ] Concu...
>
> Xiaolong Peng has updated the pull request incrementally with one additional commit since the last revision:
>
> Address review comments
Propagating gc state for init update refs is vestigial.
src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp line 1081:
> 1079: heap->pacer()->setup_for_update_refs();
> 1080: }
> 1081: {
This one isn't necessary. This safepoint only happens when the pacer or the verifier is enabled. We moved init update ref gc state propagation into a handshake (see `ShenandoahHeap::concurrent_prepare_for_update_refs`). Sorry, I should have caught this in my first review.
-------------
Changes requested by wkemper (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/23759#pullrequestreview-2642707574
PR Review Comment: https://git.openjdk.org/jdk/pull/23759#discussion_r1970695230
More information about the hotspot-gc-dev
mailing list