Fwd: RFR: 8175917: [JVMCI] Avoid long JNI handle chains
Christian Haeubl
christian.haeubl at oracle.com
Thu Mar 2 15:47:01 UTC 2017
Hi,
Please review the following patch for
https://bugs.openjdk.java.net/browse/JDK-8175917:
http://cr.openjdk.java.net/~never/8175917/webrev.001/
Bug description:
When Truffle uses JMVCI and Graal for compiling a guest language (e.g.
JavaScript), Graal heavily uses partial escape analysis. In such cases,
the JVMCI method "installCode" uses lots of local JNI references when
generating the corresponding debug information so that the thread's
top-level JNI handle buffer will have a large size. This unnecessarily
increases the footprint and significantly decreases the performance (as
long as https://bugs.openjdk.java.net/browse/JDK-8175318 is not fixed).
Fix:
Around the JVMCI method "installCode", we do something similar to JNI's
PushLocalFrame/PopLocalFrame. So, the large JNI handle buffer is
released when the method exits and the thread's top-level JNI handle
buffer is not getting enlarged.
Tests:
The changes were tested locally by executing JVMCI bootstrapping and
parts of Graal / Truffle.
Thanks,
Christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20170302/7a6bbff5/attachment-0001.html>
More information about the hotspot-compiler-dev
mailing list