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

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Jun 29 14:45:41 PDT 2012


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