linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/9] riscv: vector: misc ptrace fixes for debug use-cases
@ 2025-10-25 21:06 Sergey Matyukevich
  2025-10-25 21:06 ` [PATCH v3 1/9] selftests: riscv: test ptrace vector interface Sergey Matyukevich
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Sergey Matyukevich @ 2025-10-25 21:06 UTC (permalink / raw)
  To: linux-riscv, linux-kernel, linux-kselftest
  Cc: Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
	Oleg Nesterov, Shuah Khan, Thomas Huth, Charlie Jenkins,
	Andy Chiu, Samuel Holland, Joel Granados, Conor Dooley,
	Yong-Xuan Wang, Heiko Stuebner, Sergey Matyukevich

This patch series suggests fixes for several corner cases in the RISC-V
vector ptrace implementation:

- init vector context with proper vlenb, to avoid reading zero vlenb
  by an early attached debugger

- follow gdbserver expectations and return ENODATA instead of EINVAL
  if vector extension is supported but not yet activated for the
  traced process

- validate input vector csr registers in ptrace, to maintain an accurate
  view of the tracee's vector context across multiple halt/resume
  debug cycles

For detailed description see the appropriate commit messages. A new test
suite v_ptrace is added into the tools/testing/selftests/riscv/vector
to verify some of the vector ptrace functionality and corner cases.

Previous versions:
- v2: https://lore.kernel.org/linux-riscv/20250821173957.563472-1-geomatsi@gmail.com/T/#u
- v1: https://lore.kernel.org/linux-riscv/20251007115840.2320557-1-geomatsi@gmail.com/T/#u

Changes in v3:
Address the review comments by Andy Chiu and rework the approach:
- drop forced vector context save entirely
- perform strict validation of vector csr regs in ptrace

Changes in v2:
- add thread_info flag to allow to force vector context save
- force vector context save after vector ptrace to ensure valid vector
  context in the next ptrace operations
- force vector context save on the first context switch after vector
  context init to get proper vlenb

---

Ilya Mamay (1):
  riscv: ptrace: return ENODATA for inactive vector extension

Sergey Matyukevich (8):
  selftests: riscv: test ptrace vector interface
  selftests: riscv: verify initial vector state with ptrace
  riscv: vector: init vector context with proper vlenb
  riscv: csr: define vector registers elements
  riscv: ptrace: validate input vector csr registers
  selftests: riscv: verify ptrace rejects invalid vector csr inputs
  selftests: riscv: verify ptrace accepts valid vector csr values
  selftests: riscv: verify syscalls discard vector context

 arch/riscv/include/asm/csr.h                  |  11 +
 arch/riscv/kernel/ptrace.c                    |  72 +-
 arch/riscv/kernel/vector.c                    |  12 +-
 .../testing/selftests/riscv/vector/.gitignore |   1 +
 tools/testing/selftests/riscv/vector/Makefile |   5 +-
 .../testing/selftests/riscv/vector/v_ptrace.c | 737 ++++++++++++++++++
 6 files changed, 830 insertions(+), 8 deletions(-)
 create mode 100644 tools/testing/selftests/riscv/vector/v_ptrace.c


base-commit: 72761a7e31225971d0b29d9195e0ffa986b77867
-- 
2.51.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-10-25 21:07 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-25 21:06 [PATCH v3 0/9] riscv: vector: misc ptrace fixes for debug use-cases Sergey Matyukevich
2025-10-25 21:06 ` [PATCH v3 1/9] selftests: riscv: test ptrace vector interface Sergey Matyukevich
2025-10-25 21:06 ` [PATCH v3 2/9] riscv: ptrace: return ENODATA for inactive vector extension Sergey Matyukevich
2025-10-25 21:06 ` [PATCH v3 3/9] selftests: riscv: verify initial vector state with ptrace Sergey Matyukevich
2025-10-25 21:06 ` [PATCH v3 4/9] riscv: vector: init vector context with proper vlenb Sergey Matyukevich
2025-10-25 21:06 ` [PATCH v3 5/9] riscv: csr: define vector registers elements Sergey Matyukevich
2025-10-25 21:06 ` [PATCH v3 6/9] riscv: ptrace: validate input vector csr registers Sergey Matyukevich
2025-10-25 21:06 ` [PATCH v3 7/9] selftests: riscv: verify ptrace rejects invalid vector csr inputs Sergey Matyukevich
2025-10-25 21:06 ` [PATCH v3 8/9] selftests: riscv: verify ptrace accepts valid vector csr values Sergey Matyukevich
2025-10-25 21:06 ` [PATCH v3 9/9] selftests: riscv: verify syscalls discard vector context Sergey Matyukevich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).