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

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Jun 29 15:50:23 PDT 2012


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