G1 Old Generation GC collection event not sent after Mixed evacuation pause

Sundara Mohan M email.sundarms at gmail.com
Wed Jul 19 19:15:35 UTC 2017


>From the document, i see Space reclamation phase (multiple mixed
collections) is when the object from old gen is collected. So shouldn't we
get notified via OldGen GarbageCollectorMXBean instead of YoungGen MXBean?

I am still trying to understand if this was designed to be like this
because of logical space/generation in G1GC or it is a bug?

Thanks
Sundar

On Wed, Jul 19, 2017 at 12:09 PM, Jenny Zhang <yu.zhang at oracle.com> wrote:

> Sundar,
>
> Initial mark is a young gc piggy backed with some initial marking
> activities.
>
> "Initial Mark : This type of collection starts the marking process in
> addition to performing a regular young-only collection. Concurrent marking
> determines all currently reachable (live) objects in the old generation
> regions to be kept for the following space-reclamation phase. While marking
> hasn’t completely finished, regular young collections may occur. Marking
> finishes with two special stop-the-world pauses: Remark and Cleanup."
>
> From http://docs.oracle.com/javase/9/gctuning/garbage-first-
> garbage-collector.htm#JSGCT-GUID-1CDEB6B6-9463-4998-815D-05E095BFBD0F
>
> Thanks
>
> Jenny
>
> On 7/19/2017 11:03 AM, Sundara Mohan M wrote:
>
> Jenny,
>    Thanks for the update.
>
> Another question i was looking at the source and saw this,
>
> enum G1YCType {
>   Normal,
>   InitialMark,
>   DuringMark,
>   Mixed,
>   G1YCTypeEndSentinel
> };
>
>
> Any idea why InitialMark are categorized as Young Collection, though it is
> processing in Old Generation?
> Also mixed can include old regions in which case it should be categorized
> as Old Generation.
>
> Just trying to understand if this is designed like this or this is kind of
> bug?
>
>
> Thanks,
> Sundar
>
> On Wed, Jul 19, 2017 at 8:24 AM, yu.zhang at oracle.com <yu.zhang at oracle.com>
> wrote:
>
>> Sundara,
>>
>> I have filed this bug https://bugs.openjdk.java.net/browse/JDK-8145923
>>
>> But has not been fixed.
>>
>> Jenny
>>
>> On 07/18/2017 10:41 AM, Sundara Mohan M wrote:
>>
>> Hi,
>>    I am trying to capture all GC event happened on G1 Old Generation.
>> I was expecting when G1 Evacuation pause (mixed) happens it should
>> trigger event to my app but instead, i am getting notification only when
>> Full GC happens.
>>
>> Here is what i am doing
>>
>> gcMxBeanListener = myFunction(...)
>> oldGen  = ManagementFactiory.getGarbageCollectorMXBeans find { "G1 Old
>> Generation" }
>> oldGen.addNotificationListener(gcMxBeanListener, null, null)
>>
>> But in the case of CMS GC, it is triggered when the concurrent cycle is
>> completed.
>>
>>
>> Is there something i am missing?
>>
>> Thanks,
>> Sundar
>>
>>
>> _______________________________________________
>> hotspot-gc-use mailing listhotspot-gc-use at openjdk.java.nethttp://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use
>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-use/attachments/20170719/80c74932/attachment.html>


More information about the hotspot-gc-use mailing list