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