[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250110102248.3295944-1-shorne@gmail.com>
Date: Fri, 10 Jan 2025 10:22:42 +0000
From: Stafford Horne <shorne@...il.com>
To: LKML <linux-kernel@...r.kernel.org>
Cc: Linux OpenRISC <linux-openrisc@...r.kernel.org>,
Stafford Horne <shorne@...il.com>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>,
linux-riscv@...ts.infradead.org
Subject: [PATCH 0/3] Add OpenRISC restartable sequences support
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
Powered by blists - more mailing lists