[9] RFR (S): 7177745: JSR292: Many Callsite relinkages cause target method to always run in interpreter mode
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Wed Jan 20 11:23:47 UTC 2016
Thanks for review, Vladimir.
I decided to remove the field declaration because SA doesn't access it it.
Best regards,
Vladimir Ivanov
On 1/19/16 11:36 PM, Vladimir Kozlov wrote:
> Looks fine but in vmStructs.cpp you should replace the field declaration
> instead of just removing old one.
> Also look if SA access it.
>
> Thanks,
> Vladimir
>
> On 1/18/16 4:54 AM, Vladimir Ivanov wrote:
>> http://cr.openjdk.java.net/~vlivanov/7177745/webrev.00/
>> https://bugs.openjdk.java.net/browse/JDK-7177745
>>
>> JVM aggressively inlines through CallSites, even for mutable and
>> volatile flavors. It's the key optimization for making
>> invokedynamic performant.
>>
>> When a CallSite.target is updated, JVM invalidates all affected
>> nmethods and try to recompile them later. If a call site
>> target regularly changes, JVM will eventually mark (after
>> PerMethodRecompilationCutoff invalidations) all hot methods
>> which have the call site bound as non-compilable. It leads to
>> significant peak performance reduction, because all
>> affected methods will always be executed in interpreter mode since then.
>>
>> The fix is to avoid updating recompilation count when corresponding
>> nmethod is invalidated due to a call site target
>> change.
>>
>> I filed a separate RFE (JDK-8147550 [1]) to consider slow non-inlined
>> code shape for unstable call sites, as John
>> suggested [2].
>>
>> Testing: regression test, octane, JPRT.
>>
>> Thanks!
>>
>> Best regards,
>> Vladimir Ivanov
>>
>> [1] https://bugs.openjdk.java.net/browse/JDK-8147550
>> [2]
>> https://bugs.openjdk.java.net/browse/JDK-7177745?focusedCommentId=13821545&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13821545
>>
>>
More information about the hotspot-compiler-dev
mailing list