RFR(m): 8221734: Deoptimize with handshakes
Daniel D. Daugherty
daniel.daugherty at oracle.com
Mon May 20 22:49:11 UTC 2019
On 5/20/19 5:04 AM, Robbin Ehn wrote:
> Hi all, please see this update v4.
>
> I have fixed the simplification Patricio talked about and David's nit.
>
> The interesting part is now the full diff of bias locking cpp file:
> http://cr.openjdk.java.net/~rehn/8221734/v4/webrev/src/hotspot/share/runtime/biasedLocking.cpp.sdiff.html
>
> It's very clean.
>
> Full:
> http://cr.openjdk.java.net/~rehn/8221734/v4/
> Inc:
> http://cr.openjdk.java.net/~rehn/8221734/v4/inc/
src/hotspot/share/runtime/biasedLocking.cpp
L640: assert(mark->biased_locker() == THREAD &&
L641: prototype_header->bias_epoch() ==
mark->bias_epoch(), "Revoke failed, unhandled biased lock state");
nit - please reduce L641 indent by 3 spaces.
L698: assert(THREAD->is_Java_thread(), "");
nit - s/""/"must be a JavaThread"/
src/hotspot/share/runtime/biasedLocking.hpp
No comment.
src/hotspot/share/runtime/deoptimization.cpp
L1321: markOop mark = obj->mark();
Is now unused (which is good since it could get out of sync
with the one fetched in revoke_own_locks_in_handshake()).
test/hotspot/jtreg/compiler/codecache/stress/UnexpectedDeoptimizationAllTest.java
No comments.
No need to see a new webrev if you decide to fix the bits.
Dan
>
> I have seen no issues in T1-7, KS and other assorted testing.
>
> Thanks, Robbin
>
>
> On 2019-04-25 14:05, Robbin Ehn wrote:
>> Hi all, please review.
>>
>> Let's deopt with handshakes.
>> Removed VM op Deoptimize, instead we handshake.
>> Locks needs to be inflate since we are not in a safepoint.
>>
>> Goes on top of:
>> https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-April/033491.html
>>
>>
>> Code:
>> http://cr.openjdk.java.net/~rehn/8221734/v1/webrev/index.html
>> Issue:
>> https://bugs.openjdk.java.net/browse/JDK-8221734
>>
>> Passes t1-7 and multiple t1-5 runs.
>>
>> A few startup benchmark see a small speedup.
>>
>> Thanks, Robbin
More information about the hotspot-runtime-dev
mailing list