[9] RFR(S): 8035328: closed/compiler/6595044/Main.java failed with timeout

Tobias Hartmann tobias.hartmann at oracle.com
Thu Jun 19 07:15:36 UTC 2014


Hi,

please review the following patch for 8035328.

Bug: https://bugs.openjdk.java.net/browse/JDK-8035328
Webrev: http://cr.openjdk.java.net/~thartmann/8035328/webrev.00

*Problem**
*This bug is not a test bug. The test executes hundreds of small methods 
consisting of only a return statement multiple times. This was intended 
to test for an old (closed) bug in the C2 compiler. The timeout arises 
when the tiered compilation policy decides to recompile the caller 
method and therefore marks it as non-entrant. The method is still in use 
but call sites are not patched. See line 1179 of sharedRuntime.cpp:

// We do not patch the call site if the caller nmethod has been made 
non-entrant.

As a result, all call sites have to be resolved on every call which is 
costly and leads to the timeout (4mins vs. 17s).

*Solution
*The call site patching code in sharedRuntime is changed to patch not 
entrant call sites as well.
*
**Testing
*- JPRT
- SPECjbb2005, SPECjbb2013
- SPECjvm2008-Compiler*
*- Nashorn + Octane*
*- UTE full run with Kitchensink

Thanks,
Tobias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20140619/a226fa9a/attachment-0001.html>


More information about the hotspot-compiler-dev mailing list