RFR(m): 8221734: Deoptimize with handshakes
robbin.ehn at oracle.com
Tue May 21 09:48:24 UTC 2019
On 2019-05-21 00:49, Daniel D. Daugherty wrote:
> 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:
>> It's very clean.
> 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"/
This method is restored, so I have no changes here.
I will skip adding the comment because Patricios biasedlocking changeset will
apply clean if I leave this method untouched.
So we fix this assert in his changeset instead.
> No comment.
> 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()).
> No comments.
> No need to see a new webrev if you decide to fix the bits.
I'll send out a v6.
>> 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:
>>> Passes t1-7 and multiple t1-5 runs.
>>> A few startup benchmark see a small speedup.
>>> Thanks, Robbin
More information about the hotspot-compiler-dev