RFR: 6811960: Improper register reuse in biased_locking_enter has been fixed.

Daniel D. Daugherty daniel.daugherty at oracle.com
Wed May 13 20:42:39 UTC 2015


On 5/13/15 9:41 AM, Max Ockner wrote:
> Hello,
>
> Please review this change:
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-6811960
> webrev: http://cr.openjdk.java.net/~mockner/6811960/

src/cpu/x86/vm/interp_masm_x86.cpp
     No comments.

src/cpu/x86/vm/macroAssembler_x86.cpp
     Much cleaner.

Thumbs up.

Dan


>
> Summary: There was a piece of code which accidentally reused a 
> register that it shouldn't have reused within the biased_locking_enter 
> function. I haven't been able to reproduce the bug, and I've heard 
> that nobody has seen this bug since it was reported 5+ years ago.
> I think the reason why this bug can't be reproduced is because all it 
> does is incorrectly revoke a bias.
>
> Either way, this register is no longer reused. All registers are 
> correctly supplied now, and this fact is checked with an assert 
> statement in biased_locking_enter.
>
> There was also some code which was only called in the case where this 
> special register was reused(The original author probably intended this 
> to be possible without breaking anything) Now that there is no 
> register reuse, these code sections have been removed.
>
> Tested with a lot of things: 
> "/net/file01.se.oracle.com/home/appeal/bin/rbt remote-build-and-test 
> --jprt-queue west --test hotspot/test/:hotspot_all,vm.quick.testlist 
> -bf fastdebug -bp linux-x64-64,win-x64-64,linux-i586-32,win-i586-32 
> -tp linux-x64-64,win-x64-64,linux-i586-32,win-i586-32 --email 
> max.ockner at oracle.com"
> These were the results: 
> http://sla03.se.oracle.com:3000/rbt/rbt-max.ockner-biased-20150512-1900-1361
>
> Thanks,
> Max
>



More information about the hotspot-runtime-dev mailing list