RFR: 8286301: Port JEP 425 to RISC-V [v5]

Fei Yang fyang at openjdk.org
Fri Nov 4 11:42:28 UTC 2022


> Hi,
> 
> Please review this PR porting JEP 425 (Virtual Threads) to RISC-V.
> 
> This is mainly adapted from the work of AArch64 port. Most of the changes lie in RISC-V scope.
> Changes to HotSpot shared code are trivial and are always guarded by RISCV64 macro. So this won't
> affect the rest of the world in theory.
> 
> There exists some differences in frame structure between AArch64 and RISC-V.
> For AArch64, we have:
> 
> enum {
>   link_offset           = 0,
>   return_addr_offset    = 1,
>   sender_sp_offset      = 2
> };
> 
> While for RISC-V, we have:
> 
> enum {
>   link_offset           = -2,
>   return_addr_offset    = -1,
>   sender_sp_offset      =  0
> };
> 
> So we need adapations in some places where the code relies on value of sender_sp_offset to work.
> Note that implementation for Post-call NOPs optimization is not incorporated in this PR as we plan to
> evaluate more on its impact on performance.
> 
> Testing on Linux-riscv64 HiFive Unmatched board:
>   - Minimal, Client and Server release & fastdebug build OK.
>   - Passed tier1-tier4 tests (release build).
>   - Passed jtreg tests under test/jdk/java/lang/Thread/virtual with extra JVM options: -XX:+VerifyContinuations -XX:+VerifyStack (fastdebug build).
>   - Performed benchmark tests like Dacapo, SPECjvm2008, SPECjbb2015, etc. to make sure no performance regression are introduced (release build).

Fei Yang has updated the pull request incrementally with one additional commit since the last revision:

  Review

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/10917/files
  - new: https://git.openjdk.org/jdk/pull/10917/files/850c8958..96109879

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

  Stats: 2 lines in 2 files changed: 0 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/10917.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10917/head:pull/10917

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


More information about the hotspot-dev mailing list