RFR(10)(XS): JDK-8171365: nsk/jvmti/scenarios/events/EM04/em04t001: many errors for missed events

Chris Plummer chris.plummer at oracle.com
Mon Jun 5 15:32:38 UTC 2017


I could still use a couple of reviewers for this change.

thanks,

Chris

On 6/2/17 11:54 AM, Chris Plummer wrote:
> Hello,
>
> [I'd like a compiler team member to comment on this, in addition to 
> runtime or svc]
>
> Please review the following:
>
> https://bugs.openjdk.java.net/browse/JDK-8171365
> http://cr.openjdk.java.net/~cjplummer/8171365/webrev.00/
>
> The CR is closed, so I'll describe the issue here:
>
> The test is making sure that all |JVMTI_EVENT_DYNAMIC_CODE_GENERATED| 
> events that occur during the agent's OnLoad phase also occur when 
> later GenerateEvents() is called. GenerateEvents() is generating some 
> of the events, but most are not sent. The problem is 
> CodeCache::blobs_do() is only iterating over NMethod code heaps, not 
> all of the code heaps, so many code blobs are missed. I changed it to 
> iterate over all the code heaps, and now all the 
> |JVMTI_EVENT_DYNAMIC_CODE_GENERATED|events are sent.
>
> Note there is another version of CodeCache::blobs_do() that takes a 
> closure object instead of a function pointer. It is used by GC and I 
> assume is working properly by only iterating over NMethod code heaps, 
> so I did not change it. The version that takes a function pointer is 
> only used by JVMTI for implementing GenerateEvents(), so this change 
> should not impact any other part of the VM. However, I do wonder if 
> these blobs_do() methods should be renamed to avoid confusion since 
> they don't (and haven't in the past) iterated over the same set of 
> code blobs.
>
> thanks,
>
> Chris
>
> https://docs.oracle.com/javase/8/docs/platform/jvmti/jvmti.html#DynamicCodeGenerated 
>




More information about the hotspot-dev mailing list