RFR: 8142402: G1 should not redirty cards in free regions
Erik Helin
erik.helin at oracle.com
Thu Nov 26 14:24:15 UTC 2015
On 2015-11-25, Erik Helin wrote:
> On 2015-11-11, Thomas Schatzl wrote:
> > Hi,
> >
> > On Tue, 2015-11-10 at 16:36 +0100, Erik Helin wrote:
> > > And StefanK spotted that we no longer need to use
> > > G1CollectedHeap::heap() in G1RedirtyLoggedCardsTasks since we store a
> > > pointer to G1CollectedHeap in the field _g1h. Please see new webrevs:
> > >
> > > - incremental
> > > http://cr.openjdk.java.net/~ehelin/8142402/webrev.01-02/
> > > - full:
> > > http://cr.openjdk.java.net/~ehelin/8142402/webrev.02/
> > >
> > > Thanks,
> > > Erik
>
> Thomas, Stefan,
>
> I discovered (after some more testing) that the condition for when to
> dirty cards is slightly wrong in this patch.
>
> Since free_collection_set is run *after* redirty_logged_cards
> (which is being called from post_evacuate_collection_set), the regions
> will not be free when they are being processed by redirty_logged_cards.
> Therefore, we should only dirty cards if the region won't be freed by
> free_collection_set. A region will be freed if it is in the
> collection set and has not had an evacuation failure.
>
> Please see updated webrevs:
> - inc: http://cr.openjdk.java.net/~ehelin/8142402/webrev.02-03/
> - full: http://cr.openjdk.java.net/~ehelin/8142402/webrev.03/
I discussed this patch with Thomas and Mikael offline and we decided to
add some more documentation as to why this is needed. I have introduced
two methods and also added some comments which hopefully make things
clearer.
Please see new webrevs:
- inc: http://cr.openjdk.java.net/~ehelin/8142402/webrev.03-04/
- full: http://cr.openjdk.java.net/~ehelin/8142402/webrev.04/
Thanks,
Erik
> Testing:
> - GC test suite will full verification
>
> Thanks,
> Erik
>
> >
> > looks good to me.
> >
> > Thanks,
> > Thomas
> >
> >
More information about the hotspot-gc-dev
mailing list