[PATCH v4 0/2] RISC-V: add support for restartable sequence

Vincent Chen vincent.chen at sifive.com
Tue Mar 8 00:32:51 PST 2022


Add RSEQ, restartable sequence, support and related selftest to RISCV.
  
The relevant RSEQ tests in kselftest require the binutils patch "RISC-V:
Fix linker problems with TLS copy relocs" to avoid placing
PREINIT_ARRAY and TLS variable of librseq.so at the same address.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=3e7bd7f24146f162565edf878840449f36a8d974
A segmental fault will happen if binutils misses this patch.

Changes since v3:
1. Modify the endianness checking.
2. Fix a bug encountered in 32bit environment.

Changes since v2:
1. Move rseq_signal_deliver() after syscall restart handling.
2. Add rseq_offset_deref_addv() to support memory barrier tests.

Vincent Chen (2):
  RISC-V: Add support for restartable sequence
  rseq/selftests: Add support for RISC-V

 arch/riscv/Kconfig                        |   1 +
 arch/riscv/kernel/entry.S                 |   4 +
 arch/riscv/kernel/signal.c                |   2 +
 tools/testing/selftests/rseq/param_test.c |  23 +
 tools/testing/selftests/rseq/rseq-riscv.h | 677 ++++++++++++++++++++++
 tools/testing/selftests/rseq/rseq.h       |   2 +
 6 files changed, 709 insertions(+)
 create mode 100644 tools/testing/selftests/rseq/rseq-riscv.h

-- 
2.17.1




More information about the linux-riscv mailing list