Compilation warning after: 7172967: Eliminate the constMethod's _method backpointer to the methodOop

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Jul 2 12:09:44 PDT 2012


Looks good. Thank you, Jiangli, for fixing it.

Thanks,
Vladimir

Jiangli Zhou wrote:
> Hi Vladimir,
> 
> I filed bug 7180914 for this. Please review the following change that 
> resolve the warning. To access from 'constMethod' base, it should use 
> 'J' (jvm_agent*) with read_pointer(). The 'J-P' arguemnt is meant to use 
> with ps_pread() with an extra argument for 'size'. Using read_pointer(J, 
> ...) is more appropriate in this case since it handles 32bit vs. 64bit 
> automatically.
> 
>   http://cr.openjdk.java.net/~jiangli/7180914/webrev.00/
> 
> I built for solaris_sparc, the warning is gone with the change.
> 
> Thanks!
> 
> Jiangli
> 
> On 06/29/2012 04:04 PM, Jiangli Zhou wrote:
>> Hi Vladimir,
>>
>> Will file a bug. Thanks for the info!
>>
>> Jiangli
>>
>> On 06/29/2012 03:50 PM, Vladimir Kozlov wrote:
>>> Jiangli,
>>>
>>> Yes, please, file a bug and fix it. We should not have warnings 
>>> during VM build.
>>>
>>> Build Solaris VM as you do on Linux, it is not my special case. All 
>>> Solaris JPRT builds has this warning now:
>>>
>>> % grep "line 519: warning" 
>>> /net/prt-archiver.us.oracle.com/data/jprt/archive/2012/06/2012-06-29-182010.jcoomes.gc-push/logs/*-debug.log 
>>>
>>>
>>> Vladimir
>>>
>>> Jiangli Zhou wrote:
>>>> Hi Vladimir,
>>>>
>>>> Thanks for letting me know. Could you please give me the build 
>>>> command or script for the solaris build? Should I file a bug for the 
>>>> build warning?
>>>>
>>>> Thanks!
>>>>
>>>> Jiangli
>>>>
>>>> On 06/29/2012 02:45 PM, Vladimir Kozlov wrote:
>>>>> I got compilation warning compiling dtrace/libjvm_db.c. I think it 
>>>>> is because wrong method is used to process J->P.
>>>>>
>>>>> Here are 717296 changes:
>>>>> -  err = read_pointer(J, methodOopPtr + 
>>>>> OFFSET_methodOopDesc_constMethod, &const
>>>>> Method);
>>>>> +  err = read_pointer(J->P, constMethod + 
>>>>> OFFSET_constMethodOopDesc_constants, &
>>>>> constantPool);
>>>>>
>>>>> Here are warning:
>>>>>
>>>>> "/net/irkutsk.us.oracle.com/export/home/kvn/work2/hg/7119644/src/os/solaris/dtrace/libjvm_db.c", 
>>>>> line 519: warning: argument #1 is incompatible with prototype:
>>>>>         prototype: pointer to struct jvm_agent {pointer to struct 
>>>>> ps_prochandle {..} P, unsigned long nmethod_vtbl, unsigned long 
>>>>> CodeBlob_vtbl, unsigned long BufferBlob_vtbl, unsigned long 
>>>>> RuntimeStub_vtbl, unsigned long Use_Compressed_Oops_address, 
>>>>> unsigned long Universe_methodKlassObj_address, unsigned long 
>>>>> Universe_narrow_oop_base_address, unsigned long 
>>>>> Universe_narrow_oop_shift_address, unsigned long 
>>>>> CodeCache_heap_address, unsigned char Use_Compressed_Oops, unsigned 
>>>>> long Universe_methodKlassObj, unsigned long 
>>>>> Universe_narrow_oop_base, unsigned int Universe_narrow_oop_shift, 
>>>>> unsigned long CodeCache_low, unsigned long CodeCache_high, unsigned 
>>>>> long CodeCache_segmap_low, unsigned long CodeCache_segmap_high, int 
>>>>> SIZE_CodeCache_log2_segment, unsigned long methodOopPtr, unsigned 
>>>>> long bcx, pointer to struct Nmethod_t {..} N, struct frame {..} 
>>>>> prev_fr, struct frame {..} curr_fr} : 
>>>>> "/net/irkutsk.us.oracle.com/export/home/kvn/work2/hg/7119644/src/os/solaris/dtrace/libjvm_db.c", 
>>>>> line 201
>>>>>         argument : pointer to struct ps_prochandle {}
>>>>>
>>>>> Vladimir
>>>>>
>>>>> Jiangli Zhou wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Please review the following webrev that eliminates the _method 
>>>>>> backpointer from constMethod. The constantPoolOop pointer is moved 
>>>>>> from methodOop to constMethod, so there is still enough 
>>>>>> information to map from constMethod back to methodOop.
>>>>>>
>>>>>>   http://cr.openjdk.java.net/~jiangli/7172967/webrev.00/
>>>>>>
>>>>>> Tested with jprt, runtheses and vm.quick.testlist. No performance 
>>>>>> degradation in specjbb2005 and specjvm98. Your review and comments 
>>>>>> very appreciated.
>>>>>>
>>>>>> ============================================================================== 
>>>>>>
>>>>>> logs.method_baseline.1:
>>>>>>   Benchmark           Samples        Mean     Stdev             
>>>>>> Geomean Weight
>>>>>>   specjbb2005               8    56127.57    488.69
>>>>>>   specjvm98                 8      537.57     14.89
>>>>>> ============================================================================== 
>>>>>>
>>>>>> logs.method.1:
>>>>>>   Benchmark           Samples        Mean     Stdev   %Diff     P  
>>>>>> Significant
>>>>>>   specjbb2005               8    56733.04    549.11    1.08 
>>>>>> 0.036            *
>>>>>>   specjvm98                 8      538.45     19.90    0.16 
>>>>>> 0.922            *
>>>>>> ============================================================================== 
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Jiangli
>>>>
>>
> 


More information about the hotspot-runtime-dev mailing list