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:
> 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"/
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 need to see a new webrev if you decide to fix the bits.
> 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