RFR (S): 8155233: Lazy coarse map clear

Thomas Schatzl thomas.schatzl at oracle.com
Thu Apr 28 20:48:23 UTC 2016


Hi all,

On Thu, 2016-04-28 at 22:10 +0200, Thomas Schatzl wrote:
> Hi Jon,
> 
> On Thu, 2016-04-28 at 10:59 -0700, Jon Masamitsu wrote:
> > 
> > http://cr.openjdk.java.net/~tschatzl/8155233/webrev/src/share/vm/gc
> > /g
> > 1/heapRegionRemSet.cpp.frames.html
> > 
> > When is this not sufficient
> > 
> > 526 _coarse_dirty = _n_coarse_entries != 0;
> > 
> > such that you need to set _coarse_dirty here?
> > 
> > 508 _coarse_dirty = true;
> Not completely sure about the question, these seem to be unrelated.
> 508 deals with the case when we set any bit in the coarse bitmap
> while adding any references. If so, we can't optimize out the clear()
> in line 652, when the remembered set should be freed.
> 
> Line 526 is about the case when we find that the coarse map has been
> cleared by the scrubbing again, before the remembered set is freed
> again.
> 
> While looking at this again I forgot to add an obvious optimization:
> if we know that the coarse map is not dirty, we do not need to scrub
> it (call G1CardLiveData::remove_nonlive_regions() on it)... that
> should help a bit with scrubbing time. I will add that tomorrow. :)
> 

New webrev at
http://cr.openjdk.java.net/~tschatzl/8155233/webrev.0_to_1/ (diff)
http://cr.openjdk.java.net/~tschatzl/8155233/webrev.1/ (full)

Thanks,
  Thomas




More information about the hotspot-gc-dev mailing list