[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-serviceability-dev
Subject: Re: RFR (M) 8212160: JVMTI agent crashes with "assert(_value != 0LL) failed: resolving NULL _value"
From: David Holmes <david.holmes () oracle ! com>
Date: 2019-11-27 0:03:56
Message-ID: 32889ba8-b9e1-6a38-deaf-a16cb6d2a9c6 () oracle ! com
[Download RAW message or body]
(adding runtime as well)
Hi Coleen,
On 27/11/2019 12:22 am, coleen.phillimore@oracle.com wrote:
> Summary: Add local deferred event list to thread to post events outside
> CodeCache_lock.
>
> This patch builds on the patch for JDK-8173361. With this patch, I made
> the JvmtiDeferredEventQueue an instance class (not AllStatic) and have
> one per thread. The CodeBlob event that used to drop the CodeCache_lock
> and raced with the sweeper thread, adds the events it wants to post to
> its thread local list, and processes it outside the lock. The list is
> walked in GC and by the sweeper to keep the nmethods from being unloaded
> and zombied, respectively.
Sorry I don't understand why we would want/need a deferred event queue
for every JavaThread? Isn't this only relevant for non-JavaThreads that
need to have the ServiceThread process the deferred event?
David
> Also, the jmethod_id field in nmethod was only used as a boolean so
> don't create a jmethod_id until needed for post_compiled_method_unload.
>
> Ran hs tier1-8 on linux-x64-debug and the stress test that crashed in
> the original bug report.
>
> open webrev at http://cr.openjdk.java.net/~coleenp/2019/8212160.01/webrev
> bug link https://bugs.openjdk.java.net/browse/JDK-8212160
>
> Thanks,
> Coleen
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic