RFR: 8336742: Shenandoah: Add more verbose logging/stats for mark termination attempts [v4]
William Kemper
wkemper at openjdk.org
Tue Aug 13 16:20:51 UTC 2024
On Wed, 7 Aug 2024 13:19:12 GMT, Neethu Prasad <nprasad at openjdk.org> wrote:
>> **Revision 2 Notes**
>> 1. Added time spent on handshaking all threads requesting them to flush their SATB buffers as part of GC stats.
>> 2. As mentioned in PR feedback, will raise separate PR to adding logging in ShenandoahTimingsTracker.
>>
>> **Revision 1 Notes**
>> This PR adds the following
>> 1. info logging on number of SATB flush attempts
>> 3. total time spend on handshaking all threads requesting them to flush their SATB buffers.
>>
>> As suggested by William in [JDK-8336742 ](https://bugs.openjdk.org/browse/JDK-83367420), we can use handshake logging to get time spend and other stats for each handshake.
>>
>> [4.515s][info][handshake ] Handshake "Shenandoah Flush SATB Handshake", Targeted threads: 1036, Executed by requesting thread: 1035, Total completion time: 597004 ns
>> [4.517s][info][handshake ] Handshake "Shenandoah Flush SATB Handshake", Targeted threads: 1036, Executed by requesting thread: 1033, Total completion time: 207402 ns
>>
>>
>> **Testing**
>> 1. tier1, tier2 and hotspot_gc_shenandoah tests.
>> 2. **-Xlog:gc+stats=info**
>>
>>
>> [37.087s][info][gc,stats] CMR: VM Strong Roots 413 us, workers (us): 64, 57, 52, 47, 38, 31, 30, 25, 20, 21, 17, 10, ---, ---, ---, ---, ---, ---, ---, ---, ---, ---, ---, ---,
>> [37.087s][info][gc,stats] CMR: CLDG Roots 449 us, workers (us): 4, ---, ---, 406, ---, 15, ---, 4, 4, ---, ---, 17, ---, ---, ---, ---, ---, ---, ---, ---, ---, ---, ---, ---,
>> [37.087s][info][gc,stats] Concurrent Marking 5002 us
>> [37.087s][info][gc,stats] SATB Flush Rendezvous 1748 us
>> [37.087s][info][gc,stats] Pause Final Mark (G) 57272 us
>> [37.087s][info][gc,stats] Pause Final Mark (N) 56985 us
>> [37.087s][info][gc,stats] Finish Mark 387 us
>> [37.087s][info][gc,stats] Update Region States 109 us
>> [37.087s][info][gc,stats] Choose Collection Set 56395 us
>> [37.087s][info][gc,stats] Rebuild Free Set 40 us
>>
>>
>> on app termination
>>
>>
>> [40.640s][info][gc,stats] Concurrent Reset = 0.914 s (a = 65255 us) (n = 14) (lvls, us = 54883, 55859, 63867, 65234, 97096)
>> [40.640s][info][gc,stats] Pause Init Mark (G) = 1.755 s (a = 125380 us) (n = 14) (lvls, us = 119141, 123047, 125000, 125000, 128042)
>> [40.640s][info][gc,stats] Pause Init Mark (N) = 1.697 s (a = 121241 us...
>
> Neethu Prasad has updated the pull request incrementally with one additional commit since the last revision:
>
> Address feedback on code style
Suggest changing phase name in logs for consistency with https://github.com/openjdk/jdk/pull/20549.
src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp line 60:
> 58: SHENANDOAH_PAR_PHASE_DO(conc_mark_roots, " CMR: ", f) \
> 59: f(conc_mark, "Concurrent Marking") \
> 60: f(conc_mark_satb_flush_rendezvous, " SATB Flush Rendezvous") \
Could this be "Flush SATB" or "Flush SATB Handshakes" for consistency with https://github.com/openjdk/jdk/pull/20549?
-------------
Changes requested by wkemper (Committer).
PR Review: https://git.openjdk.org/jdk/pull/20318#pullrequestreview-2236015311
PR Review Comment: https://git.openjdk.org/jdk/pull/20318#discussion_r1715576931
More information about the hotspot-gc-dev
mailing list