This series adds restartable sequences support to OpenRISC. This came after discussions with Michael on the libc-alpha list where he added some preliminary rseq support [1].
The changes use mostly the riscv port as a template. The patches were tested with selftests on qemu using my glibc branch containing rseq patches [2]. Note the RSEQ_SIG instruction I chose is a `l.nop 0x35` which is just a nop, which is different than most other architectures that use a `break` instruction. As the signature does not need to actually be a break or trap instruction I figured the nop is good for this. [1] https://gcc.gnu.org/pipermail/libc-alpha/2025-January/163504.html [2] https://github.com/stffrdhrn/or1k-glibc/commits/or1k-rseq/ Michael Jeanson (1): openrisc: Add HAVE_REGS_AND_STACK_ACCESS_API support Stafford Horne (2): openrisc: Add support for restartable sequences rseq/selftests: Add support for OpenRISC arch/openrisc/Kconfig | 2 + arch/openrisc/include/asm/ptrace.h | 73 +++- arch/openrisc/kernel/entry.S | 4 + arch/openrisc/kernel/ptrace.c | 96 ++++ arch/openrisc/kernel/signal.c | 2 + tools/testing/selftests/rseq/param_test.c | 24 + tools/testing/selftests/rseq/rseq-or1k-bits.h | 412 ++++++++++++++++++ .../selftests/rseq/rseq-or1k-thread-pointer.h | 13 + tools/testing/selftests/rseq/rseq-or1k.h | 181 ++++++++ .../selftests/rseq/rseq-thread-pointer.h | 2 + tools/testing/selftests/rseq/rseq.h | 2 + 11 files changed, 810 insertions(+), 1 deletion(-) create mode 100644 tools/testing/selftests/rseq/rseq-or1k-bits.h create mode 100644 tools/testing/selftests/rseq/rseq-or1k-thread-pointer.h create mode 100644 tools/testing/selftests/rseq/rseq-or1k.h -- 2.47.0