RFR: 8345322: RISC-V: Add concurrent gtests for cmpxchg variants

Robbin Ehn rehn at openjdk.org
Thu Dec 5 12:06:59 UTC 2024


Hi, please consider these additional concurrent tests.

(this will not go into 24)

There are two concurrent counter versions:
- Each thread is exclusively responsible for an certain increment steps
- Each thread plainly tries to CAS increment by one

I refactored the code, so these concurrent versions can reuse the generated CAS functions.


[ RUN      ] RiscV.cmpxchg_int64_concurrent_lr_sc_vm
[       OK ] RiscV.cmpxchg_int64_concurrent_lr_sc_vm (24 ms)
[ RUN      ] RiscV.cmpxchg_int64_concurrent_maybe_zacas_vm
[       OK ] RiscV.cmpxchg_int64_concurrent_maybe_zacas_vm (12 ms)
[ RUN      ] RiscV.cmpxchg_int32_concurrent_lr_sc_vm
[       OK ] RiscV.cmpxchg_int32_concurrent_lr_sc_vm (14 ms)
[ RUN      ] RiscV.cmpxchg_int32_concurrent_maybe_zacas_vm
[       OK ] RiscV.cmpxchg_int32_concurrent_maybe_zacas_vm (14 ms)
[ RUN      ] RiscV.cmpxchg_int16_concurrent_lr_sc_vm
[       OK ] RiscV.cmpxchg_int16_concurrent_lr_sc_vm (15 ms)
[ RUN      ] RiscV.cmpxchg_int16_concurrent_maybe_zacas_vm
[       OK ] RiscV.cmpxchg_int16_concurrent_maybe_zacas_vm (14 ms)
[ RUN      ] RiscV.cmpxchg_int8_concurrent_lr_sc_vm
[       OK ] RiscV.cmpxchg_int8_concurrent_lr_sc_vm (14 ms)
[ RUN      ] RiscV.cmpxchg_int8_concurrent_maybe_zacas_vm
[       OK ] RiscV.cmpxchg_int8_concurrent_maybe_zacas_vm (14 ms)
[ RUN      ] RiscV.weak_cmpxchg_int64_concurrent_lr_sc_vm
[       OK ] RiscV.weak_cmpxchg_int64_concurrent_lr_sc_vm (15 ms)
[ RUN      ] RiscV.weak_cmpxchg_int64_concurrent_maybe_zacas_vm
[       OK ] RiscV.weak_cmpxchg_int64_concurrent_maybe_zacas_vm (11 ms)
[ RUN      ] RiscV.weak_cmpxchg_int32_concurrent_lr_sc_vm
[       OK ] RiscV.weak_cmpxchg_int32_concurrent_lr_sc_vm (15 ms)
[ RUN      ] RiscV.weak_cmpxchg_int32_concurrent_maybe_zacas_vm
[       OK ] RiscV.weak_cmpxchg_int32_concurrent_maybe_zacas_vm (12 ms)
[ RUN      ] RiscV.weak_cmpxchg_int16_concurrent_lr_sc_vm
[       OK ] RiscV.weak_cmpxchg_int16_concurrent_lr_sc_vm (13 ms)
[ RUN      ] RiscV.weak_cmpxchg_int16_concurrent_maybe_zacas_vm
[       OK ] RiscV.weak_cmpxchg_int16_concurrent_maybe_zacas_vm (14 ms)
[ RUN      ] RiscV.weak_cmpxchg_int8_concurrent_lr_sc_vm
[       OK ] RiscV.weak_cmpxchg_int8_concurrent_lr_sc_vm (13 ms)
[ RUN      ] RiscV.weak_cmpxchg_int8_concurrent_maybe_zacas_vm
[       OK ] RiscV.weak_cmpxchg_int8_concurrent_maybe_zacas_vm (15 ms)


Execute with +UseZacas, and without on BPI-F3.

Thanks, Robbin

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

Commit messages:
 - Concurrent

Changes: https://git.openjdk.org/jdk/pull/22574/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22574&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8345322
  Stats: 359 lines in 1 file changed: 269 ins; 13 del; 77 mod
  Patch: https://git.openjdk.org/jdk/pull/22574.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22574/head:pull/22574

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


More information about the hotspot-dev mailing list