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

Robbin Ehn rehn at openjdk.org
Thu Dec 12 13:42:29 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

Robbin Ehn 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 eight additional commits since the last revision:

 - Merge branch 'master' into 8345322
 - Fixed tests for uint32 and added edges cases
 - Inclusive case
 - Reviews comments, added uint32
 - Code share
 - Overflow
 - Merge branch 'master' into 8345322
 - Concurrent

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/22574/files
  - new: https://git.openjdk.org/jdk/pull/22574/files/1b127e08..5b91eead

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

  Stats: 13565 lines in 2541 files changed: 7181 ins; 1697 del; 4687 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