Re: [PATCH v3 0/4] openrisc: Add support for KProbes and Kretprobes
From: Masami Hiramatsu (Google)
Date: Fri Nov 13 2026 - 08:04:18 EST
Hi Sahil,
Can you update the series according to the Sashiko's comment[1]?
[1] https://sashiko.dev/#/patchset/20261026201240.107462-3-sahilcdq0%40gmail.com
Also, can you check your git email settings, so that the next
version does *NOT* reply to the previous version.
This mail has
Message-ID: <20261026201240.107462-1-sahilcdq0@xxxxxxxxx>
X-Mailer: git-send-email 2.55.0
In-Reply-To: <20260930202744.50489-1-sahilcdq0@xxxxxxxxx>
References: <20260930202744.50489-1-sahilcdq0@xxxxxxxxx>
But I can not find "20260930202744.50489-1-sahilcdq0@xxxxxxxxx" in
the LKML archive.
Also "[PATCH v3 2/4] openrisc: Add KProbes" has
Message-ID: <20261026201240.107462-3-sahilcdq0@xxxxxxxxx>
X-Mailer: git-send-email 2.55.0
In-Reply-To: <20260930202744.50489-1-sahilcdq0@xxxxxxxxx>
References: <20260930202744.50489-1-sahilcdq0@xxxxxxxxx>
This should be in reply to the cover mail
"20261026201240.107462-1-sahilcdq0@xxxxxxxxx"
Thank you,
On Tue, 27 Oct 2026 01:42:36 +0530, Sahil Siddiq <sahilcdq0@xxxxxxxxx> wrote:
> Hi,
>
> This is v3 of the patch series to add KProbe and Kretprobe support for
> OpenRISC. KProbes was introduced in v1 [1] while Kretprobes was introduced
> in v2 [2].
>
> In order to build the kernel with Kprobes and Kretprobes enabled, the
> following config options are required:
> 1. CONFIG_HAVE_KPROBES=y
> 2. CONFIG_KPROBES=y
> 3. CONFIG_RETHOOK=y
> 4. CONFIG_KRETPROBES=y
>
> I tested the generic functionality of Kprobes and Kretprobes using the
> tests located at "lib/tests" [3], samples located at "samples/kprobes" [4],
> as well as a few test modules that I have published here [5]. The following
> options are required to build the samples and tests:
> 1. CONFIG_SAMPLES=y
> 2. CONFIG_SAMPLE_KPROBES=m
> 3. CONFIG_SAMPLE_KRETPROBES=m
> 4. CONFIG_KPROBES_SANITY_TEST=m
>
> I have also added unit tests at "arch/openrisc/kernel/tests" to verify
> that Kprobes work properly when inserted at branch instructions, and
> that delay slots are handled correctly. The tests are based on the Kprobe
> testsuite added for RISC-V. The following options need to be enabled to
> build the tests:
> 1. CONFIG_KUNIT=y
> 2. CONFIG_RUNTIME_KERNEL_TESTING_MENU=y
> 3. CONFIG_OR_KPROBES_KUNIT=m
>
> Below are the results of the tests and sample modules when run in my
> environment.
>
> - kretprobe_example:
>
> /home # insmod kretprobe_example.ko
> Planted return probe at kernel_clone: (ptrval)
> /home # ls >/dev/null
> kernel_clone returned 35 and took 1302450 ns to execute
> /home # rmmod kretprobe_example.ko
> kernel_clone returned 36 and took 1121200 ns to execute
> kretprobe at (ptrval) unregistered
> Missed probing 0 instances of kernel_clone
>
> - test_kprobes:
>
> /home # insmod test_kprobes.ko
> KTAP version 1
> 1..1
> KTAP version 1
> # Subtest: kprobes_test
> # module: test_kprobes
> 1..5
> ok 1 test_kprobe
> ok 2 test_kprobes
> ok 3 test_kprobe_missed
> ok 4 test_kretprobe
> ok 5 test_kretprobes
> # kprobes_test: pass:5 fail:0 skip:0 total:5
> # Totals: pass:5 fail:0 skip:0 total:5
> ok 1 kprobes_test
>
> - openrisc_test_kprobes:
>
> /home # insmod openrisc_test_kprobes.ko
> KTAP version 1
> 1..1
> KTAP version 1
> # Subtest: kprobes_openrisc
> # module: openrisc_test_kprobes
> 1..1
> ok 1 test_kprobe_openrisc
> ok 1 kprobes_openrisc
>
> v3 adds a few fixes to the patch series based on Sachiko's review comments [6]. I
> have listed out the differences introduced in each iteration in the following emails.
>
> Thanks,
> Sahil
>
> [1] https://lkml.org/lkml/2026/4/8/21
> [2] https://lkml.org/lkml/2026/10/1/28
> [3] https://github.com/torvalds/linux/tree/master/lib/tests
> [4] https://github.com/torvalds/linux/tree/master/samples/kprobes
> [5] https://github.com/valdaarhun/or-dev
> [6] https://sashiko.dev/#/patchset/20260930203129.51048-1-sahilcdq0%40gmail.com
>
> Sahil Siddiq (4):
> openrisc: Add utilities and clean up simulation of instructions
> openrisc: Add KProbes
> openrisc: Add unit tests for KProbes on branch instructions
> openrisc: Add Kretprobes
>
> arch/openrisc/Kconfig | 3 +
> arch/openrisc/Kconfig.debug | 30 +-
> arch/openrisc/configs/or1ksim_defconfig | 2 +
> arch/openrisc/configs/virt_defconfig | 2 +
> arch/openrisc/include/asm/asm.h | 22 +
> arch/openrisc/include/asm/break.h | 19 +
> arch/openrisc/include/asm/cpuinfo.h | 3 +
> arch/openrisc/include/asm/insn-def.h | 64 ++-
> arch/openrisc/include/asm/kprobes.h | 77 ++++
> arch/openrisc/include/asm/spr_defs.h | 1 +
> arch/openrisc/kernel/Makefile | 5 +-
> arch/openrisc/kernel/entry.S | 16 +
> arch/openrisc/kernel/insn.c | 88 ++++
> arch/openrisc/kernel/kprobes.c | 426 ++++++++++++++++++
> arch/openrisc/kernel/rethook.c | 32 ++
> arch/openrisc/kernel/rethook.h | 8 +
> arch/openrisc/kernel/rethook_trampoline.S | 111 +++++
> arch/openrisc/kernel/setup.c | 4 +
> arch/openrisc/kernel/tests/Makefile | 3 +
> arch/openrisc/kernel/tests/test_kprobes.c | 59 +++
> arch/openrisc/kernel/tests/test_kprobes.h | 24 +
> arch/openrisc/kernel/tests/test_kprobes_asm.S | 157 +++++++
> arch/openrisc/kernel/traps.c | 82 ++--
> arch/openrisc/lib/memcpy.c | 2 +
> arch/openrisc/lib/memset.S | 4 +
> arch/openrisc/mm/fault.c | 5 +
> samples/kprobes/kprobe_example.c | 8 +
> 27 files changed, 1206 insertions(+), 51 deletions(-)
> create mode 100644 arch/openrisc/include/asm/asm.h
> create mode 100644 arch/openrisc/include/asm/break.h
> create mode 100644 arch/openrisc/include/asm/kprobes.h
> create mode 100644 arch/openrisc/kernel/insn.c
> create mode 100644 arch/openrisc/kernel/kprobes.c
> create mode 100644 arch/openrisc/kernel/rethook.c
> create mode 100644 arch/openrisc/kernel/rethook.h
> create mode 100644 arch/openrisc/kernel/rethook_trampoline.S
> create mode 100644 arch/openrisc/kernel/tests/Makefile
> create mode 100644 arch/openrisc/kernel/tests/test_kprobes.c
> create mode 100644 arch/openrisc/kernel/tests/test_kprobes.h
> create mode 100644 arch/openrisc/kernel/tests/test_kprobes_asm.S
>
> --
> 2.55.0
>
>
--
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>