RFR: 8003216: Add JFR event indicating explicit System.gc() cal
Per Liden
per.liden at oracle.com
Mon Mar 9 15:03:33 UTC 2020
Hi,
On 2/27/20 10:13 AM, Stefan Johansson wrote:
> Hi Erik,
>
> On 2020-02-26 18:28, Erik Gahlin wrote:
>> Hi Stefan,
>>
>> GC-id would be nice, but perhaps not possible in all scenarios, i.e.
>> -XX:+ExplicitGCInvokesConcurrent and Epsilon GC?
> For ExplicitGCInvokesConcurrent it would not be a big problem, that
> would start a concurrent cycle and we could use the id for that GC. I
> also realized that we can get the GC-id without any problem. For other
> events sent before the GC-id is properly setup, we use GCId::peek()
> which returns the id that will be used for the next collection.
I have to say that I don't think the GC-id is all the
important/interesting here. Especially, since that ID can be a bit
sketchy depending on the GC and/or configuration.
cheers,
Per
>
> For Epsilon, I'm not sure an event should be sent at all since they are
> blocked, see: EpsilonHeap::collect(...)
>
> Thanks,
> Stefan
>
>>
>> Thanks
>> Erik
>>
>> On 2020-02-26 14:21, Stefan Johansson wrote:
>>> Hi Erik,
>>>
>>>> 26 feb. 2020 kl. 13:56 skrev Per Liden <per.liden at oracle.com>:
>>>>
>>>> Hi Erik,
>>>>
>>>> On 2020-02-26 13:50, Erik Gahlin wrote:
>>>>> Hi,
>>>>> Could I have a review of a JFR event that is emitted when
>>>>> System.gc() is called.
>>>>> Purpose is to collect the stack trace. It is not sufficient with
>>>>> the cause field that the GarbageCollection event has today.
>>>>> Bug:
>>>>> https://bugs.openjdk.java.net/browse/JDK-8003216
>>>>> Webrev:
>>>>> http://cr.openjdk.java.net/~egahlin/8003216/
>>>> 489 EventSystemGC event;
>>>> 490 event.commit();
>>>> 491 Universe::heap()->collect(GCCause::_java_lang_system_gc);
>>>>
>>>> Don't you want the commit() call after the call to collect(), to get
>>>> the timing right?
>>> I was thinking the same thing, could also be nice to have the GC-id
>>> associated with the event to make it easy to match it to GC-logs and
>>> other GC-events. Not sure how to easily get the GC-id though, since
>>> it’s not set at the time we commit the event.
>>>
>>> I guess if the event has the correct span with timestamps it will be
>>> easy to figure out which other events are associated with it, even
>>> without the GC-id.
>>>
>>> Cheers,
>>> Stefan
>>>
>>>> cheers,
>>>> Per
>>>>
>>>>> Testing:
>>>>> tier1+tier2+jdk/jdk/jfr
>>>>> Thanks
>>>>> Erik
More information about the hotspot-jfr-dev
mailing list