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.zh...@oracle.com <mailto:yu.zh...@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
    
<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.zh...@oracle.com
    <mailto:yu.zh...@oracle.com> <yu.zh...@oracle.com
    <mailto:yu.zh...@oracle.com>> wrote:

        Sundara,

        I have filed this bug
        https://bugs.openjdk.java.net/browse/JDK-8145923
        <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 list
        hotspot-gc-use@openjdk.java.net
        <mailto:hotspot-gc-use@openjdk.java.net>
        http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use
        <http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use>





_______________________________________________
hotspot-gc-use mailing list
hotspot-gc-use@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use

Reply via email to