RFR(S): 8250635: MethodArityHistogram should use Compile_lock in favour of fancy checks
Schmidt, Lutz
lutz.schmidt at sap.com
Mon Sep 7 15:39:54 UTC 2020
Hi Martin,
thank you for your review!
Best,
Lutz
On 07.09.20, 14:54, "Doerr, Martin" <martin.doerr at sap.com> wrote:
Hi Lutz,
thanks for the explanations. I'm fine with it.
Best regards,
Martin
> -----Original Message-----
> From: Schmidt, Lutz <lutz.schmidt at sap.com>
> Sent: Freitag, 28. August 2020 18:01
> To: Doerr, Martin <martin.doerr at sap.com>; hotspot-compiler-
> dev at openjdk.java.net
> Subject: Re: RFR(S): 8250635: MethodArityHistogram should use
> Compile_lock in favour of fancy checks
>
> Hi Martin,
>
> good question.
>
> Originally, the iteration was only protected by the CodeCache_lock. That
> proved insufficient: the CodeCache_lock only protects against structural
> changes in the CodeCache. The contents of the individual code blobs can be,
> and is, modified independently.
>
> By acquiring the Compile_lock, those modifications are blocked while
> iterating.
>
> With the help of a consistency check (not contained in the RFR code), it was
> found that there is a slight chance to see the case (nm != NULL) &&
> (method() == NULL). That chance is eliminated by adding the is_alive() check
> which is less invasive compared to adding a new nmethods_do() variant.
>
> Regards,
> Lutz
>
> On 28.08.20, 17:02, "Doerr, Martin" <martin.doerr at sap.com> wrote:
>
> Hi Lutz,
>
> just for my understanding: What exactly are we protecting against by
> holding Compile_lock?
> Is it for concurrent initialization or concurrent unloading?
>
> Note that it's also possible to iterate only over alive nmethods:
> NMethodIterator iter(NMethodIterator::only_alive);
>
> Best regards,
> Martin
>
>
> > -----Original Message-----
> > From: hotspot-compiler-dev <hotspot-compiler-dev-
> > retn at openjdk.java.net> On Behalf Of Schmidt, Lutz
> > Sent: Mittwoch, 26. August 2020 17:19
> > To: hotspot-compiler-dev at openjdk.java.net
> > Subject: [CAUTION] RFR(S): 8250635: MethodArityHistogram should use
> > Compile_lock in favour of fancy checks
> >
> > Dear all,
> >
> > may I please request reviews for this small enhancement? Instead of
> calling a
> > method doing complicated and fancy (hard to understand) checks, the
> > iteration over all nmethods is now protected by holding the Compile_lock
> in
> > addition to the CodeCache_lock.
> >
> > Bug: https://bugs.openjdk.java.net/browse/JDK-8250635
> > Webrev: https://cr.openjdk.java.net/~lucy/webrevs/8250635.00/
> >
> > Thank you!
> > Lutz
> >
>
More information about the hotspot-compiler-dev
mailing list