RFR: 8369283: Improve trace logs in safepoint machinery [v6]

David Holmes dholmes at openjdk.org
Thu Oct 9 04:47:08 UTC 2025


On Wed, 8 Oct 2025 08:36:33 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> During the performance investigations in safepoint machinery (notably [JDK-8350324](https://bugs.openjdk.org/browse/JDK-8350324)), I found the trace logging lacking. It would be good to improve it in order to finely profile various microscopic things like thread list walks, the blocking/resuming of Java threads, etc. For [JDK-8350324](https://bugs.openjdk.org/browse/JDK-8350324), for example, I want to be able to measure the Java thread delays if they assist in avalanche wakeups.
>> 
>> This leans heavily on unified logging and invariant clocks to do the right thing, but I think it is a fair compromise for simplicity. The configuration I found most useful for testing is:
>> 
>> 
>> -Xlog:async -Xlog:safepoint=trace:file=safepoint.log:uptimenanos
>> 
>> 
>> My tentative plan is to visualize this more comprehensively with a little tool that digests that log.
>> 
>> I am open for bikeshedding on logging wording. The log example is in the comment below.
>> 
>> Additional testing:
>>  - [x] Ad-hoc log peeking
>>  - [x] Linux x86_64 server fastdebug, `tier1`
>>  - [x] Linux x86_64 server fastdebug, `all`
>
> Aleksey Shipilev has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Put polling exception tracing back with minor reformat
>  - Touchups

Still one query on the removed part, but okay, seems reasonable.

I seemed to recall that once-upon-a-time we had TraceTimers(?) to gather the interesting elapsed time and other stats for safepoints.

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

Marked as reviewed by dholmes (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/27673#pullrequestreview-3317206045


More information about the hotspot-dev mailing list