RFR (XL): 8152664 - Support non-continuous CodeBlobs in HotSpot

Christian Thalinger christian.thalinger at oracle.com
Thu Apr 7 17:28:08 UTC 2016


> On Apr 7, 2016, at 2:25 AM, Andrew Dinn <adinn at redhat.com> wrote:
> 
> On 07/04/16 13:12, Rickard Bäckman wrote:
>> can I please have review for this patch please?
>> 
>> So far CodeBlobs have required all the data (metadata, oops, code, etc)
>> to be in one continuous blob With this patch we are looking to change
>> that. It's been done by changing offsets in CodeBlob to addresses,
>> making some methods virtual to allow different behavior and also
>> creating a couple of new classes. CompiledMethod now sits inbetween
>> CodeBlob and nmethod.
>> 
>> CR: https://bugs.openjdk.java.net/browse/JDK-8152664
>> Webrev: http://cr.openjdk.java.net/~rbackman/8152664/
> 
> Why do 'we want to be able to have pieces of compiled code and metadata
> that are not located in one continuous piece of memory'? Is there a
> motive for making this change?

Yes, there are two reasons:

1)  We would like to separate metadata from code in the CodeCache so that we (potentially) get better CPU cache utilization:

https://bugs.openjdk.java.net/browse/JDK-7072317

2)  As described in my last year’s JVMLS talk our AOT solution uses shared libraries as a container format and as you know code and data need to be separate.

If you haven’t been at JVMLS here is the recording of my talk and the section about the container format:

https://youtu.be/Xybzyv8qbOc?t=10m41s

> 
> regards,
> 
> 
> Andrew Dinn
> -----------
> 



More information about the hotspot-dev mailing list