RFR: 8319900: Recursive lightweight locking: riscv64 implementation [v4]

Gui Cao gcao at openjdk.org
Fri Mar 1 15:37:12 UTC 2024


> Implementation of recursive lightweight JDK-8319796 for linux-riscv64.
> 
> ### Correctness testing:
> 
> - [x]  Run tier1-3, hotspot:tier4 tests with -XX:LockingMode=1 & -XX:LockingMode=2 on LicheePI 4A (release)
> - [x]  Run tier1-3 tests with -XX:LockingMode=1 & -XX:LockingMode=2 on qemu 8.1.0 (fastdebug)
> 
> ### JMH tested on LicheePI 4A:
> 
> 
> Before (LockingMode = 2):
> 
> Benchmark                                (innerCount)  Mode  Cnt       Score      Error  Units
> LockUnlock.testContendedLock                      100  avgt   12     281.603 ±    2.626  ns/op
> LockUnlock.testRecursiveLockUnlock                100  avgt   12  196373.917 ± 4669.241  ns/op
> LockUnlock.testRecursiveSynchronization           100  avgt   12     274.492 ±    6.049  ns/op
> LockUnlock.testSerialLockUnlock                   100  avgt   12   11516.092 ±   69.964  ns/op
> LockUnlock.testSimpleLockUnlock                   100  avgt   12   11490.789 ±   58.833  ns/op
> 
> After (LockingMode = 2):
> 
> Benchmark                                (innerCount)  Mode  Cnt      Score    Error  Units
> LockUnlock.testContendedLock                      100  avgt   12    307.013 ±  3.259  ns/op
> LockUnlock.testRecursiveLockUnlock                100  avgt   12  59047.222 ± 94.748  ns/op
> LockUnlock.testRecursiveSynchronization           100  avgt   12    259.789 ±  1.698  ns/op
> LockUnlock.testSerialLockUnlock                   100  avgt   12   6055.775 ± 13.518  ns/op
> LockUnlock.testSimpleLockUnlock                   100  avgt   12   6090.986 ± 67.179  ns/op
> 
> 
> 
> Before (LockingMode = 1):
> 
> Benchmark                                (innerCount)  Mode  Cnt      Score     Error  Units
> LockUnlock.testContendedLock                      100  avgt   12    286.144 ±   2.490  ns/op
> LockUnlock.testRecursiveLockUnlock                100  avgt   12  68058.259 ± 286.262  ns/op
> LockUnlock.testRecursiveSynchronization           100  avgt   12    263.132 ±   4.075  ns/op
> LockUnlock.testSerialLockUnlock                   100  avgt   12   7521.777 ±  35.193  ns/op
> LockUnlock.testSimpleLockUnlock                   100  avgt   12   7522.480 ±  26.310  ns/op
> 
> After (LockingMode = 1):
> 
> Benchmark                                (innerCount)  Mode  Cnt      Score     Error  Units
> LockUnlock.testContendedLock                      100  avgt   12    289.034 ±   5.821  ns/op
> LockUnlock.testRecursiveLockUnlock                100  avgt   12  68474.370 ± 495.135  ns/op
> LockUnlock.testRecursiveSynchronization           100  avgt   12    261.052 ±   4.560  ns/op
> Loc...

Gui Cao has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains seven additional commits since the last revision:

 - Merge remote-tracking branch 'upstream/master' into JDK-8319900
 - Merge remote-tracking branch 'upstream/master' into JDK-8319900
 - fix comment typo
 - Merge branch 'master' into JDK-8319900
 - improve code
 - Polish code comment
 - 8319900: Recursive lightweight locking: riscv64 implementation

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/17554/files
  - new: https://git.openjdk.org/jdk/pull/17554/files/34acbb27..3f506562

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=17554&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=17554&range=02-03

  Stats: 2965 lines in 822 files changed: 774 ins; 489 del; 1702 mod
  Patch: https://git.openjdk.org/jdk/pull/17554.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17554/head:pull/17554

PR: https://git.openjdk.org/jdk/pull/17554


More information about the hotspot-dev mailing list