RFR(s): 8218145: block_if_requested is not proper inlined due to size
Robbin Ehn
robbin.ehn at oracle.com
Fri Feb 1 16:55:01 UTC 2019
Thanks, yes!
/Robbin
On 2019-02-01 17:34, Gerard Ziemski wrote:
> hi Robbin,
>
> Looks good, but couldn’t we have:
>
> 86 void SafepointMechanism::block_if_requested_slow(JavaThread *thread) {
> 87 if (global_poll()) {
> 88 SafepointSynchronize::block(thread);
> 89 }
> 90 if (uses_thread_local_poll() && thread->has_handshake()) {
> 91 // local poll already checked
> 92 thread->handshake_process_by_self();
> 93 } // else { If we don't have per thread poll this could a handshake or a safepoint }
> 94 }
>
> instead of:
>
> 86 void SafepointMechanism::block_if_requested_slow(JavaThread *thread) {
> 87 if (uses_thread_local_poll()) {
> 88 // local poll already checked
> 89 if (global_poll()) {
> 90 SafepointSynchronize::block(thread);
> 91 }
> 92 if (thread->has_handshake()) {
> 93 thread->handshake_process_by_self();
> 94 }
> 95 } else {
> 96 // If we don't have per thread poll this could a handshake or a safepoint
> 97 if (global_poll()) {
> 98 SafepointSynchronize::block(thread);
> 99 }
> 100 }
> 101 }
>
> if we want to reduce the code size?
>
>
> cheers
>
>> On Feb 1, 2019, at 3:54 AM, Robbin Ehn <robbin.ehn at oracle.com> wrote:
>>
>> Hi all, please review.
>>
>> Code:
>> http://cr.openjdk.java.net/~rehn/8218145/webrev/index.html
>> Issue:
>> https://bugs.openjdk.java.net/browse/JDK-8218145
>>
>> SafepointMechanism::block_if_requested(JavaThread*) is often not inlined to due inline-unit-growth.
>> This improve the inlining frequency with 6-7x.
>> Some startup benchmarks show 1% better time.
>>
>> Test -+ThreadsLocalHandshakes and t1.
>>
>> Note that we are planning to deprecate -ThreadsLocalHandshakes in 13, therefore -ThreadsLocalHandshakes is put in slow path to further reduce size.
>> When we can remove the uses_thread_local_poll() it become so small it is always inlined. Arguably this method should have ALWAYSINLINE, but I would prefer not.
>>
>> Thanks, Robbin
>
More information about the hotspot-runtime-dev
mailing list