All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] sparc64: kprobes: Make kprobes work on sun4v
@ 2026-11-13 14:40 Stian Halseth
  2026-11-13 14:40 ` [PATCH v2 1/4] sparc64: kprobes: Single-step from an executable instruction slot Stian Halseth
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Stian Halseth @ 2026-11-13 14:40 UTC (permalink / raw)
  To: David S. Miller, Andreas Larsson
  Cc: Masami Hiramatsu, Naveen N Rao, Danish Khateeb, sparclinux,
	linux-trace-kernel, linux-kernel, Stian Halseth

Any kprobe hit on a sun4v machine oopses. The probed instruction is
single-stepped from memory that is not executable there. Patch 1
moves the copy into an instruction slot from get_insn_slot(), as other
architectures do.

Once probes work, three older single-step bugs show up. A taken BPr or
FP branch resumes at the wrong address (patch 2). So does a probe on a
delay slot instruction (patch 3). An annulled branch can skip the
break instruction after the copy (patch 4). Patch 2 overlaps Danish
Khateeb's relbranch_fixup() fix from September. Whichever is applied
first, the other is a small rebase.

Tested on a SPARC T7-1 and T4-1 (sun4v) and a Sun Fire V240 (sun4u):
entry and return probes, probes on all 50 instructions of
__task_pid_nr_ns at once while checking getppid(), ps and /proc, probes
on the SPARC AES routines during AF_ALG encryption (sun4v), and
refusal of ba,a. Without the series the first probe hit oopses on
sun4v. A probe on a taken brnz oopses on sun4u as well.

v2: make flush_insn_slot() a no-op in patch 1 (Masami). The slot is
flushed in arch_prepare_kprobe() when it is written. A killed probe
has a NULL slot pointer. init_aggr_kprobe() flushed through it.
Patch 4 no longer touches the macro. Rebased onto 7.4-rc3. Build
tested on the T7-1.
v1: https://lore.kernel.org/all/20261009180336.1315684-1-stian@itx.no/

Stian Halseth (4):
  sparc64: kprobes: Single-step from an executable instruction slot
  sparc64: kprobes: Fix up register and FP branches after single-step
  sparc64: kprobes: Resume after a delay slot at the saved next PC
  sparc64: kprobes: Handle annulled branches

 arch/sparc/include/asm/kprobes.h | 14 +++----
 arch/sparc/kernel/kprobes.c      | 69 +++++++++++++++++++++++++++-----
 2 files changed, 66 insertions(+), 17 deletions(-)


base-commit: b3dfbde62cf1981c4638939c159dfd087b7a72e9
-- 
2.43.0


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

end of thread, other threads:[~2026-11-13 14:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-13 14:40 [PATCH v2 0/4] sparc64: kprobes: Make kprobes work on sun4v Stian Halseth
2026-11-13 14:40 ` [PATCH v2 1/4] sparc64: kprobes: Single-step from an executable instruction slot Stian Halseth
2026-11-13 14:40 ` [PATCH v2 2/4] sparc64: kprobes: Fix up register and FP branches after single-step Stian Halseth
2026-11-13 14:40 ` [PATCH v2 3/4] sparc64: kprobes: Resume after a delay slot at the saved next PC Stian Halseth
2026-11-13 14:47   ` sashiko-bot
2026-11-13 14:40 ` [PATCH v2 4/4] sparc64: kprobes: Handle annulled branches Stian Halseth

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.