RFR 8003421: NPG: Move oops out of InstanceKlass into mirror

Dean Long dean.long at oracle.com
Mon May 20 20:41:49 PDT 2013


On 5/20/2013 7:50 PM, Coleen Phillimore wrote:
> On 5/20/2013 8:42 PM, Dean Long wrote:
>> It seems like you could take this opportunity to make these declared 
>> fields of java.lang.Class,
>> allowing, for example, getProtectionDomain0() to be a simple Java 
>> method instead of a native method.
>
> We actually use the protection domain and init_lock from within the 
> vm, so we want to be able to see it.   Signers can be moved out 
> eventually though.
>
The VM can already see Java fields.  You would just need to initialize 
_protection_domain_offset using compute_offset() like we do for other 
fields.  Java fields would also have the advantage of working with the 
new @Contended annotation, which probably doesn't work for injected 
fields.  However for backwards compatability with an older class library 
you could use compute_optional_offset() and inject the field only if 
it's missing.

dl

> Thanks,
> Coleen
>
>>
>> dl
>>
>> On 05/20/2013 03:39 PM, Coleen Phillimore wrote:
>>> Summary: Inject protection_domain, signers, init_lock into 
>>> java_lang_Class
>>>
>>> Net footprint change is zero except that these fields are in Java 
>>> heap rather than metaspace.  This helps a little with InstanceKlass 
>>> size which is in fixed size space with UseCompressedKlassPointers. 
>>> Included serviceability because there were SA changes to code that I 
>>> don't know is used.
>>>
>>> Future work is to remove the signers field and the unused 
>>> SetProtectionDomain function.
>>>
>>> open webrev at http://cr.openjdk.java.net/~coleenp/8003421/
>>> bug link at http://bugs.sun.com/view_bug.do?bug_id=8003421
>>>
>>> Tested with vm.quick.testlist, JPRT, jtreg java/security tests and 
>>> jck8 tests.
>>>
>>> Thanks,
>>> Coleen
>>
>



More information about the serviceability-dev mailing list