G1 Old Generation GC collection event not sent after Mixed evacuation pause
Sundara Mohan M
email.sundarms at gmail.com
Wed Jul 19 21:35:33 UTC 2017
Thanks Jenny. Got why initial marking is young (it just process old gen and
collects only young gen).
So mixed GC reclaiming is still a bug and not designed to be like that
correct?
Thanks,
Sundar
On Wed, Jul 19, 2017 at 1:35 PM, Jenny Zhang <yu.zhang at oracle.com> wrote:
> You are right about the mixed gc reclaiming old gen. If I understand you
> correctly, your question is about why initial marking is young gc? It only
> collects young gen.
>
> thanks
>
> Jenny
>
> On 7/19/2017 12:15 PM, Sundara Mohan M wrote:
>
> 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-garba
>> ge-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/290a3aa0/attachment.html>
More information about the hotspot-gc-use
mailing list