Fwd: RFR: 8175917: [JVMCI] Avoid long JNI handle chains (original) (raw)
Christian Haeubl christian.haeubl at oracle.com
Thu Mar 2 15:47:01 UTC 2017
- Previous message: RFR (S) 8175887: C1 value numbering handling of Unsafe.get*Volatile is incorrect
- Next message: Fwd: RFR: 8175917: [JVMCI] Avoid long JNI handle chains
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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>
- Previous message: RFR (S) 8175887: C1 value numbering handling of Unsafe.get*Volatile is incorrect
- Next message: Fwd: RFR: 8175917: [JVMCI] Avoid long JNI handle chains
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the hotspot-compiler-dev mailing list