RFR (XS): 8200362: G1Mux2Closure should disable implicit oop verification
Thomas Schatzl
thomas.schatzl at oracle.com
Thu Mar 29 09:02:48 UTC 2018
Hi Stefan,
On Thu, 2018-03-29 at 09:52 +0200, Stefan Johansson wrote:
> Hi Thomas,
>
> On 2018-03-28 17:27, Thomas Schatzl wrote:
> > Hi all,
> >
> > can I have reviews for this small change that fixes some
> > annoyance
> > when debugging with G1?
> >
> > In particular, G1Mux2Closure is used by verification to verify and
> > in
> > case of error print out g1 specific error messages.
> >
> > However, since G1Mux2Closure is an OopClosure, it is actually
> > wrapped
> > by NoHeaderExtendedOopClosure in oop_iterate* calls.
> > ExtendedOopClosure
> > has its own verification that is very generic, and may trigger in
> > the
> > same situations as G1Mux2Closure.
> >
> > Disable this implicit verification for G1Mux2Closure so that we
> > always
> > get the g1 specific error messages.
> >
> > CR:
> > https://bugs.openjdk.java.net/browse/JDK-8200362
> > Webrev:
> > http://cr.openjdk.java.net/~tschatzl/8200362/webrev/
>
> Nice change, always good to get detailed information. I think you
> need
> to change the code using the G1Mux2Closure as well. On line 666 in
> heapRegion.cpp:
> G1Mux2Closure mux(&vl_cl, &vr_cl);
> obj->oop_iterate_no_header(&mux);
> This should now be a normal oop_iterate(&mux) to make sure the right
> verification is done.
Fixed. Also looked through other closures used for verification.
http://cr.openjdk.java.net/~tschatzl/8200362/webrev.0_to_1 (diff)
http://cr.openjdk.java.net/~tschatzl/8200362/webrev.1 (full)
Thomas
More information about the hotspot-gc-dev
mailing list