RFR: 8319947: Recursive lightweight locking: s390x implementation

Amit Kumar amitkumar at openjdk.org
Wed May 15 09:18:10 UTC 2024


s390x port for recursive locking. 

testing:
- [x] build fastdebug-vm
- [x] build slowdebug-vm
- [x] build release-vm
- [x] build optimized-vm
- [x] ./test/jdk/java/util/concurrent (fastdebug-vm)
  - [x] with C1
  - [x] with C2
  - [x] with interpreter 
- [x] ./test/jdk/java/util/concurrent (release-vm)
  - [x] with C1
  - [x] with C2
  - [x] with interpreter 
- [x] ./test/jdk/java/util/concurrent (slowdebug-vm)
  - [x] with C1
  - [x] with C2
  - [x] with interpreter
- [x] tier1 with fastdebug-vm 
- [x] tier1 with slowdebug-vm
- [x] tier1 with release-vm

*BenchMarks*:

Without Patch: 

make test TEST="micro:vm.lang.LockUnlock" MICRO="JAVA_OPTIONS=-XX:LockingMode=1"

Benchmark                                (innerCount)  Mode  Cnt     Score     Error  Units
LockUnlock.testContendedLock                      100  avgt   12    15.175 ±   2.071  ns/op
LockUnlock.testRecursiveLockUnlock                100  avgt   12  5412.677 ± 274.280  ns/op
LockUnlock.testRecursiveSynchronization           100  avgt   12    29.293 ±   2.802  ns/op
LockUnlock.testSerialLockUnlock                   100  avgt   12   503.216 ±   8.764  ns/op
LockUnlock.testSimpleLockUnlock                   100  avgt   12   508.809 ±  13.565  ns/op
Finished running test 'micro:vm.lang.LockUnlock'

With Patch:

Benchmark                                (innerCount)  Mode  Cnt     Score     Error  Units
LockUnlock.testContendedLock                      100  avgt   12    13.876 ±   1.561  ns/op
LockUnlock.testRecursiveLockUnlock                100  avgt   12  5323.962 ± 189.045  ns/op
LockUnlock.testRecursiveSynchronization           100  avgt   12    29.545 ±   2.313  ns/op
LockUnlock.testSerialLockUnlock                   100  avgt   12   505.054 ±   5.920  ns/op
LockUnlock.testSimpleLockUnlock                   100  avgt   12   502.929 ±   9.131  ns/op
Finished running test 'micro:vm.lang.LockUnlock'





Without Patch: 

make test TEST="micro:vm.lang.LockUnlock" MICRO="JAVA_OPTIONS=-XX:LockingMode=2"
Benchmark                                (innerCount)  Mode  Cnt      Score      Error  Units
LockUnlock.testContendedLock                      100  avgt   12     14.961 ±    1.189  ns/op
LockUnlock.testRecursiveLockUnlock                100  avgt   12  16136.332 ± 1321.914  ns/op
LockUnlock.testRecursiveSynchronization           100  avgt   12     31.176 ±    1.357  ns/op
LockUnlock.testSerialLockUnlock                   100  avgt   12    461.308 ±   23.610  ns/op
LockUnlock.testSimpleLockUnlock                   100  avgt   12    479.421 ±   37.541  ns/op
Finished running test 'micro:vm.lang.LockUnlock'

With Patch:

Benchmark                                (innerCount)  Mode  Cnt     Score      Error  Units
LockUnlock.testContendedLock                      100  avgt   12    16.777 ±    1.543  ns/op
LockUnlock.testRecursiveLockUnlock                100  avgt   12  7060.493 ± 3095.793  ns/op
LockUnlock.testRecursiveSynchronization           100  avgt   12    28.437 ±    1.022  ns/op
LockUnlock.testSerialLockUnlock                   100  avgt   12   439.701 ±    6.002  ns/op
LockUnlock.testSimpleLockUnlock                   100  avgt   12   460.381 ±   23.340  ns/op
Finished running test 'micro:vm.lang.LockUnlock'

Another run with Patch: 
Benchmark                                (innerCount)  Mode  Cnt     Score     Error  Units
LockUnlock.testContendedLock                      100  avgt   12    19.482 ±   3.550  ns/op
LockUnlock.testRecursiveLockUnlock                100  avgt   12  5135.956 ± 687.021  ns/op
LockUnlock.testRecursiveSynchronization           100  avgt   12    28.111 ±   1.083  ns/op
LockUnlock.testSerialLockUnlock                   100  avgt   12   440.351 ±  31.667  ns/op
LockUnlock.testSimpleLockUnlock                   100  avgt   12   436.257 ±  20.705  ns/op
Finished running test 'micro:vm.lang.LockUnlock'

PPC port for the same: https://github.com/openjdk/jdk/pull/16611

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

Commit messages:
 - Merge branch 'master' into recursive_locking_v1
 - s390x recursive locking port

Changes: https://git.openjdk.org/jdk/pull/18878/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18878&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8319947
  Stats: 551 lines in 9 files changed: 427 ins; 56 del; 68 mod
  Patch: https://git.openjdk.org/jdk/pull/18878.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18878/head:pull/18878

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


More information about the hotspot-dev mailing list