mbox series

[v3,0/2] RISC-V: add support for restartable sequence

Message ID 20220302023048.6140-1-vincent.chen@sifive.com (mailing list archive)
Headers show
Series RISC-V: add support for restartable sequence | expand

Message

Vincent Chen March 2, 2022, 2:30 a.m. UTC
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 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 | 676 ++++++++++++++++++++++
 tools/testing/selftests/rseq/rseq.h       |   2 +
 6 files changed, 708 insertions(+)
 create mode 100644 tools/testing/selftests/rseq/rseq-riscv.h