My understanding was that a buffer blob was just that - a buffer. Could 
potentially contain code fragments of different kinds.
Thus, is_buffer_blob() was the closest type available. Agree that a dependency 
on its name is not reliable, though testing 
will reveal if the condition turns false for "vtable chunks" due to a name 
change (I had to deal with that particular test, Serguei
should be able to identify it). Adding a comment to where the name is defined 
(vtableStubs.cpp) that such a dependency exists
is a good idea.
Thanks,

    -- Oleg

On Feb 6, 2014, at 3:32 PM, Coleen Phillimore wrote:

> 
> Hi, I clicked on this a couple times.  It seems okay but isn't there a safer 
> way to identify code blobs that are vtable stubs, without looking at the name 
> (which can change in while creating it).  A comment at least when you create 
> "vtable chunks" would be good.   It seems that someone might want to rename 
> it "vtable or itable buffers", or something like that.
> 
> thanks,
> Coleen
> 
> On 2/6/14 6:17 PM, serguei.spit...@oracle.com wrote:
>> Runtime team, 
>> 
>> This fix was reviewed by Vladimir K. and me. 
>> Just wanted to make sure if you would like to review it as well. 
>> If not, then I will push it. 
>> 
>> Thanks, 
>> Serguei 
>> 
>> On 2/3/14 2:17 PM, serguei.spit...@oracle.com wrote: 
>>> Please, review the fix for: 
>>>   https://bugs.openjdk.java.net/browse/JDK-8025841 
>>> 
>>> 
>>> Open webrev: 
>>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2014/hotspot/omazurov/8025841-JVMTI-vtbl.1
>>>  
>>> 
>>> Summary: 
>>> 
>>>   The fix contributed by Oleg Mazurov to improve profiling data quality. 
>>>   It moves the "vtable stub" dynamic code notification to the right place. 
>>>   I've already reviewed the fix, and it looks good to me. 
>>> 
>>>   Bug report description: 
>>> 
>>>    "JVMTI_EVENT_DYNAMIC_CODE_GENERATED for "vtable stub" gets scheduled 
>>> when 
>>>     a new chunk of memory for subsequent vtable and itable stubs is 
>>> allocated. 
>>>     That chunk is uninitialized (contains zeros or garbage) although due to 
>>> the fact 
>>>     that the actual event delivery is deferred, at least one vtable comes 
>>> out right. 
>>> 
>>>     This event should describe an individual vtable/itable stub (base 
>>> address and size) 
>>>     and only after it's been created (memory is actually populated with 
>>> code). 
>>>     Where VM diagnostic messages about vtable/itable stubs are issued upon 
>>>     -XX:+PrintAdapterHandlers appears exactly the right place for JVMTI 
>>> events as well. 
>>> 
>>>     Getting vtables/itables right is important in the context of 
>>> performance analysis as 
>>>     that dynamically generated code may accumulate quite noticeable CPU 
>>> time 
>>>     (especially itabes), sometimes larger than the actual Java methods 
>>> called." 
>>> 
>>> 
>>> Testing: 
>>>   Oleg tested it in the Oracle Studio Performance Analyzer environment. 
>>>   nsk.jvmti, nsk.jdi, nsk.jdwp, 
>>>   In progress: Jtreg com/sun/jdi, java/lang/instrument 
>>> 
>>> 
>>> Thanks, 
>>> Serguei 
>>> 
>> 
> 

Reply via email to