RFR: 8166607: G1 needs klass_or_null_acquire

Thomas Schatzl thomas.schatzl at oracle.com
Wed Nov 16 09:21:27 UTC 2016


Hi Kim,

On Tue, 2016-11-15 at 18:58 -0500, Kim Barrett wrote:
> > 
> > On Nov 15, 2016, at 5:21 AM, Thomas Schatzl <thomas.schatzl at oracle.
> > com> wrote:
> > 
> > Hi Kim,
> > 
> > On Mon, 2016-11-07 at 14:38 -0500, Kim Barrett wrote:
> > > 
> > > > 
> > > > 
> > > > On Nov 7, 2016, at 5:53 AM, Thomas Schatzl <thomas.schatzl at orac
> > > > le.c
> > > > om> wrote:
> > > > Maybe it would be cleaner to call a method in the barrier set
> > > > instead of inlining the dirtying + enqueuing in lines 685 to
> > > > 691?
> > > > Maybe as an additional RFE.
> > > We could use _ct_bs->invalidate(dirtyRegion).  That's rather
> > > overgeneralized and inefficient for this situation, but this
> > > situation should occur *very* rarely; it requires a stale card
> > > get
> > > processed just as a humongous object is in the midst of being
> > > allocated in the same region.
> > I kind of think for these reasons we should use _ct_bs-
> > >invalidate() as
> > it seems clearer to me. There is the mentioned drawback of having
> > no
> > other more efficient way, so I will let you decide about this.
> I've made the change to call invalidate, and also updated some
> comments.
> 
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8166607
> 
> Webrevs:
> full: http://cr.openjdk.java.net/~kbarrett/8166607/webrev.03/
> incr: http://cr.openjdk.java.net/~kbarrett/8166607/webrev.03.inc/
> 

  thanks, looks good.

Thomas



More information about the hotspot-dev mailing list