Please review fix for 6716785: implicit null checks not triggering with CompressedOops

Vladimir Kozlov Vladimir.Kozlov at Sun.COM
Thu Jul 17 11:38:13 PDT 2008


Coleen Phillimore - Sun Microsystems wrote:
> 
> 
> Vladimir Kozlov wrote:
>> Coleen,
>>
>> Why you added os::is_implicit_NPE() method?
>>
>> All MacroAssembler::needs_explicit_null_check() methods
>> have  the code for compressed oops implicit NPE.
> Oh, now I see that.  You must have added it.  It's not in sparc versions 
> though (and I can't figure out why we have so many variants of the same 
> function!).

On sparc we don't have implicit NPE for compressed oops since
there is no an addressing mode with compressed oop.
On x86 it use (r12 + r*8 + offset), on sparc you can not do this.
This is why we safe on sparc now with COOP.

>>
>> Also you removed _heap_base setting in universe.cpp.
>> Where it is set now?
> It's set in protect_noaccess_prefix in virtualspace.cpp

I see. OK.

Thanks,
Vladimir

> 
> Coleen
>>
>> Thanks,
>> Vladimir
>>
>> Coleen Phillimore - Sun Microsystems wrote:
>>>
>>> 6716785: implicit null checks not triggering with CompressedOops
>>> Summary: allocate alignment-sized page(s) below java heap so that 
>>> memory accesses at heap_base+1page give signal and cause an implicit 
>>> null check
>>> Reviewed-by:
>>>
>>> Webrev:
>>> http://webrev.invokedynamic.info/coleenp/6716785/
>>>
>>> Note in this webrev, the change in arguments.cpp to enable 
>>> UseCompressedOops by default will be reverted for checking into HS13 
>>> (it's still off by default) for 6u6p.  Should I enable it in our HS14 
>>> source base?
>>>
>>> Thanks!
>>> Coleen



More information about the hotspot-runtime-dev mailing list