RFR: 8167679: G1 phase logging is messy

Erik Helin erik.helin at oracle.com
Mon Oct 17 15:05:38 UTC 2016


On 2016-10-14, kirk.pepperdine at gmail.com wrote:
> Hi Erik,
> 
> Is it possible to generate a few examples such as this? http://cr.openjdk.java.net/~brutisso/JEP-271/review.00/compare.html <http://cr.openjdk.java.net/~brutisso/JEP-271/review.00/compare.html>

Hey Kirk,

thanks for having a look! I've uploaded a few examples:
- Xlog:gc=info:
  http://cr.openjdk.java.net/~ehelin/8167679/info.txt

  (same as before, nothing has changed)

- Xlog:gc*=info:
  http://cr.openjdk.java.net/~ehelin/8167679/star-info.txt

  In this example one can see the new info level phases:
  - Pre Evacuate Collection Set
  - Evacuate Collection Set
  - Post Evacuate Collection Set
  - Other

- Xlog:gc*=info,gc+phases=debug:
  http://cr.openjdk.java.net/~ehelin/8167679/phases-debug.txt

  In this example one can see the re-structured debug level phases.

I'm thinking of moving some of the debug level phases to trace, but that
would be another patch.

Thanks,
Erik

> Kind regards,
> Kirk
> 
> > On Oct 14, 2016, at 4:00 PM, Erik Helin <erik.helin at oracle.com> wrote:
> > 
> > Hi all,
> > 
> > this patch re-organizes the slightly messy phase logging for G1. Right
> > now there are a couple of "top-level" phases at gc+phases=info level:
> > - Evacuate Collection Set
> > - Code Roots
> > - Merge Per-Thread States
> > - Clear card table
> > - Free Collection Set
> > - Other
> > (-Root Region Scan Waiting if it takes any time)
> > 
> > There is no reasoning for showing exactly these phases, they have more or
> > less just been added over the years. The "Other" phase includes multiple
> > miscellanous phases as well as unknown/unmeasured time. This patch
> > introduces four phases on the gc+phases=info level:
> > - Pre Evacuate Collectinon Set
> > - Evacuate Collection Set
> > - Post Evacuate Collection Set
> > - Other
> > 
> > where "Other" now is only unknown/unmeasured time. I have organized the
> > phases at gc+phases=debug level so they are now in "execution order":
> > - Pre Evacuate Collection Set
> >  - Choose Collection Set
> >  - Humongous Register
> > - Evacuate Collection Set
> >  - Ext Root Scanning
> >  - Update RS
> >  - Scan RS
> >  - Code Root Scanning
> >  - Object Copy
> >  - Termination
> > - Post Evacuate Collection Set
> >  - Code Roots Fixup
> >  - Preserve CM Refs
> >  - Reference Processing
> >  - Clear Card Table
> >  - Reference Enqueuing
> >  - Code Roots Purge
> >  - Redirty Cards
> >  - Free Collection Set
> >  - Humongous Reclaim
> >  - Expand Heap After Collection
> > - Other
> > 
> > The "Code Roots" phase at info level was removed since it doesn't make
> > sense to sum "Code Roots Fixup" and "Code Roots Purge", that shouldn't
> > have been done to begin with. 
> > 
> > As for the code, I removed a few macros and replaced them with just
> > normal functions.
> > 
> > Webrev:
> > http://cr.openjdk.java.net/~ehelin/8167679/00/
> > 
> > Bug:
> > https://bugs.openjdk.java.net/browse/JDK-8167679
> > 
> > Testing:
> > - JPRT
> > 
> > Thanks,
> > Erik
> 



More information about the hotspot-gc-dev mailing list