RFR: 8153745: Avoid spawning G1ParPreserveCMReferentsTask when there is no work to be done

Thomas Schatzl thomas.schatzl at oracle.com
Wed Apr 13 11:20:44 UTC 2016


Hi Stefan,

On Mon, 2016-04-11 at 17:36 +0200, Stefan Johansson wrote:
> Thanks for looking at this Thomas,
> 
> On 2016-04-08 13:45, Thomas Schatzl wrote:
> > Hi,
> > 
> > 
[...]
> > There is a difference between taking "0.0" time and not having 
> > executed that is sometimes interesting to know.
> I did discuss this with Bengt before sending out the patch and for 
> the debug level we currently don't have any logic for "skipped" 
> phass.
> If turning on logging on trace-level the output will now look like
> this:
> [1,241s][info ][gc,phases     ] GC(9)   Other: 1,0ms
> [1,241s][debug][gc,phases     ] GC(9)     Choose CSet: 0,0ms
> [1,241s][debug][gc,phases     ] GC(9)     Preserve CM Refs: 0,0ms
> [1,241s][trace][gc,phases     ] GC(9)       Parallel Preserve CM Refs
> (ms): skipped
> [1,241s][debug][gc,phases     ] GC(9)     Reference Processing: 0,4ms
> [1,241s][debug][gc,phases     ] GC(9)     Reference Enqueuing: 0,0ms
> 
> I think this is ok, but we might want to look at adding logic for 
> "skipping" debug phases as well.
> 
> New webrevs:
> Full: http://cr.openjdk.java.net/~sjohanss/8153745/hotspot.01/
> Inc: http://cr.openjdk.java.net/~sjohanss/8153745/hotspot.00-01/


  looks good.

Thomas




More information about the hotspot-gc-dev mailing list