RFR: 8203028: Simplify reference processing in light of JDK-8175797
Thomas Schatzl
thomas.schatzl at oracle.com
Tue May 15 15:01:45 UTC 2018
Hi Kim,
On Tue, 2018-05-15 at 09:48 -0400, Kim Barrett wrote:
> > On May 15, 2018, at 4:17 AM, Thomas Schatzl <thomas.schatzl at oracle.
> > com> wrote:
> >
> > Hi,
> >
> > On Mon, 2018-05-14 at 18:09 -0400, Kim Barrett wrote:
> > > > On May 14, 2018, at 8:45 AM, Thomas Schatzl <thomas.schatzl at ora
> > > > cle.
> > > > com> wrote:
> > > >
> > > > Hi Kim,
> > > >
> > > > some initial comments…
> > >
> > > Thanks for looking at this.
> > >
> > > > On Sun, 2018-05-13 at 21:32 -0400, Kim Barrett wrote:
> > > > > […]
> > > > > CR:
> >
> > [...]
> >
> >
> > > > - please remove the unused complete_gc parameter from
> > > > ReferenceProcessor::process_phase2.
> > >
> > > I intentionally left it alone. Removing it completely starts
> > > getting
> > > messy when one starts walking up the callers and hits the
> > > parallel
> > > task layer (either drop the argument there instead, or have two
> > > different work functions with consequent fannout). And I expect
> > > this
> > > interface is going to be completely changed by JDK-8202845, so it
> > > didn't seem worth doing much here.
> >
> > Oh, I would have simply kept the parameter in the ProcessTask
> > layer.
> > You are right, we want to discuss this later though.
> >
> > [...]
> >
> > Thanks for all the other clarifications in the documentation.
> >
> > >
> > > New webrev, rebased to include JDK-8201491:
> > > http://cr.openjdk.java.net/~kbarrett/8203028/open.01/
> > >
> > > New webrevs with above changes:
> > > full: http://cr.openjdk.java.net/~kbarrett/8203028/open.02/
> > > incr: http://cr.openjdk.java.net/~kbarrett/8203028/open.02.inc/
> > >
> >
> > maybe some really stupid question, but: do we really not need to
> > update the next field if we discovered an (inactive) Reference? (in
> > instanceRefKlass.inline.hpp, in oop_oop_iterate_discovery).
>
> The next field does get updated, just not via any bespoke mechanism.
> It's now treated as an ordinary oop-containing field, just like
> queue.
> See the InstanceRefKlass::update_nonstatic_oop_maps change.
that was what I was missing. Looks good.
Thanks,
Thomas
More information about the hotspot-gc-dev
mailing list