Compilation warning after: 7172967: Eliminate the constMethod's _method backpointer to the methodOop
Jiangli Zhou
jiangli.zhou at oracle.com
Mon Jul 2 12:07:35 PDT 2012
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