RFR (S): 8212911: Unify and micro-optimize handling of non-in-collection set references in oop closures
Thomas Schatzl
thomas.schatzl at oracle.com
Tue Oct 30 10:37:01 UTC 2018
Hi,
... aaaand I forgot to add the webrevs in the last email for
reference:
http://cr.openjdk.java.net/~tschatzl/8212911/webrev.1_to_2 (diff)
http://cr.openjdk.java.net/~tschatzl/8212911/webrev.2 (full)
Thanks,
Thomas
On Tue, 2018-10-30 at 11:34 +0100, Thomas Schatzl wrote:
> Hi Kim,
>
> On Mon, 2018-10-29 at 20:54 -0400, Kim Barrett wrote:
> > > On Oct 25, 2018, at 5:45 AM, Thomas Schatzl <
> > > thomas.schatzl at oracle.com> wrote:
> > >
> > > Hi all,
> > >
> > > On Wed, 2018-10-24 at 13:36 +0200, Thomas Schatzl wrote:
> > > > Hi all,
> > > >
> > > > can I have reviews for this small change that does some minor
> > > > cleanup and micro-optimization of our main g1 stw/concurrent gc
> > > > closures?
> > > >
> > > > [...]
> > > > CR:
> > > > https://bugs.openjdk.java.net/browse/JDK-8212911
> > > > Webrev:
> > > > http://cr.openjdk.java.net/~tschatzl/8212911/webrev/
> > > > Testing:
> > > > hs-tier1-3, several hs-tier1-5 runs with other changes,
> > > > benchmark
> > > > suite etc.
> > >
> > > Stefan pointed out that _from_in_young is only used in
> > > G1ScanEvacuatedObjClosure any more, so it could be moved from
> > > G1ScanClosureBase.
> > >
> > > Also we brainstormed a bit about the name of _from_in_young, and
> > > agreed on changing this to _scanning_in_young.
> > >
> > > New webrevs:
> > > http://cr.openjdk.java.net/~tschatzl/8212911/webrev.1 (full)
> > > http://cr.openjdk.java.net/~tschatzl/8212911/webrev.0_to_1 (diff)
> > >
> > > Thanks,
> > > Thomas
> >
> > -------------------------------------------------------------------
> > -----------
> > src/hotspot/share/gc/g1/g1OopClosures.inline.hpp
> > 178 } else {
> > 179 if (HeapRegion::is_in_same_region(p, obj)) {
> > 180 return;
> > 181 }
> >
> > I think this would be easier to read if it were written as
> >
> > 178 } else if (!HeapRegion::is_in_same_region(p, obj)) {
> >
> > There are similar snippets at line 86 and line 200. I don’t need
> > a new review if you want to make these changes.
>
> Fixed.
>
> > -------------------------------------------------------------------
> > -----------
> > src/hotspot/share/gc/g1/g1OopClosures.hpp
> > 91 G1ScanClosureBase(g1h, par_scan_state),
> > _scanning_in_young(false) { }
> >
> > I kind of dislike the initialization of _scanning_in_young to
> > false.
>
> "False" is the safe option, potentially enqueuing a reference that is
> not needed to enqueue (if you forget).
>
> > But that seems consistent with previous usage of _from. For
> > catching
> > bugs, a kind of tri-state and an RAII-style setter (from "unset" to
> > true or false then back) might be better. If you like that idea
> > but
> > don't want to do it right now, feel free to file an RFE. (The
> > reset
> > back to "unset" could be DEBUG_ONLY, along with all of the relevant
> > checking being in asserts.)
>
> I filed JDK-8213142 for that, with an RFR coming soon.
>
> Thanks,
> Thomas
>
>
More information about the hotspot-gc-dev
mailing list