RFR(M): 8145521: Use trampolines for i2i and i2c entries in Methods that are stored in CDS archive

Dean Long dean.long at oracle.com
Sat Feb 20 00:39:59 UTC 2016

We have profiling code that will suspend a thread at random points and 
try to walk the stack.
I think frame::sender() will get confused if you happen to catch a 
thread in the trampoline,
and frame::_pc is in metadata and not the code cache.


On 2/19/2016 2:19 PM, Calvin Cheung wrote:
> JBS: https://bugs.openjdk.java.net/browse/JDK-8145221
> webrev: http://cr.openjdk.java.net/~ccheung/8145221/webrev.00/
> This optimization reduces the size of the RW region of the CDS 
> archive. It also reduces the amount of pages in the RW region that are 
> actually written into during runtime.
> The original prototype on the x86_64 platform was done by Ioi 
> (ioi.lam at oracle.com).
> I helped porting it to other platforms.
> Special thanks to Goetz (goetz.lindenmaier at sap.com) who provided the 
> changes to the ppc platform.
> Testing:
>     JPRT with testset hotspot
>     maunal testing on X86_64, x86_32 and solaris/sparcv9 with 
> -XX:+PrintAssembly -XX:+PrintInterpreter
>     built on the Zero platform
>     tested on the openjdk aarch64 platform
>     refworkload on various platform (please refer to bug report for data)
> thanks,
> Calvin

More information about the hotspot-runtime-dev mailing list