Compilation warning after: 7172967: Eliminate the constMethod's _method backpointer to the methodOop
Jiangli Zhou
jiangli.zhou at oracle.com
Mon Jul 2 12:17:28 PDT 2012
Hi Vladimir,
Thanks a lot!
Jiangli
On 07/02/2012 12:09 PM, Vladimir Kozlov wrote:
> 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