RFR (XS) 8215221: Serial GC misreports young GC time

Aleksey Shipilev shade at redhat.com
Thu Jan 24 15:37:55 UTC 2019

On 12/18/18 4:52 PM, Kim Barrett wrote:
>> On Dec 11, 2018, at 3:23 PM, Aleksey Shipilev <shade at redhat.com> wrote:
>> Bug:
>>  https://bugs.openjdk.java.net/browse/JDK-8215221
>> One of our guys pointed out the oddity in Serial GC logs: "Pause Young" includes the timing for Full
>> collection, and wrecks up GCId order as well. This is because GCTraceTime-s are nested on those
>> paths, and putting them in proper order, closer to collect_generation, fixes it.
>> The downside is that some of the cleanup actions are now outside the GCTraceTime. Those look
>> innocuous to omit to me, though.
> ClassLoaderDataGraph::purge() doesn’t look so innocuous.  I haven’t
> looked hard at other stuff being omitted from accounting by this change.
> It seems to me that fixing this reporting problem might require some
> restructuring of this rather complicated and flag-filled function.

Okay, another attempt. This restructures the code a little bit, which IMO makes the flow more
understandable. It also eliminates a few flags. Then, the placement for GCTraceTime becomes natural.
Well, almost, because it requires some dance around should_do_full_collection, if we want to include
young-only epilog into timing.


This passes hotspot_tier1 and my ad-hoc tests. If this is the way to go, I would do jdk-submit, etc.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20190124/69a3d1b4/signature.asc>

More information about the hotspot-gc-dev mailing list