From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
To: sahilcdq0@gmail.com
Cc: jonas@southpole.se, stefan.kristiansson@saunalahti.fi,
shorne@gmail.com, naveen@kernel.org, davem@davemloft.net,
mhiramat@kernel.org, tytso@mit.edu, wangruikang@iscas.ac.cn,
namcao@linutronix.de, pjw@kernel.org, kees@kernel.org,
linux-openrisc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-trace-kernel@vger.kernel.org,
Sahil Siddiq <sahilcdq0@gmail.com>
Subject: Re: [PATCH v2 0/4] openrisc: Add support for KProbes
Date: Tue, 13 Oct 2026 04:22:53 +0000 [thread overview]
Message-ID: <20261013042255.7DF701F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260930203129.51048-1-sahilcdq0@gmail.com>
Hi Sahil,
Thanks for updating! Could you check Sashiko's comments on the series?
https://sashiko.dev/#/patchset/20260930203129.51048-1-sahilcdq0%40gmail.com
I need OpenRISC maintainer's review for this series too.
Thank you,
On Thu, 01 Oct 2026 02:01:25 +0530, Sahil Siddiq <sahilcdq0@gmail.com> wrote:
> Hi,
>
> Apologies for the delay. This is v2 of the patch series to add KProbe
> support for OpenRISC.
>
> The series also adds support for Kretprobes (which depends on the rethook
> framework [1]). Kretprobes are fired on function return.
>
> 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" [2], samples located at "samples/kprobes" [3],
> as well as a few test modules that I have published here [4]. 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
>
> I have also made changes based on the review comments I received for
> v1 [5] including several of Sachiko's comments [6]. I chose not to make
> changes in a few places. I'll send emails as a reply to this thread
> explaining my reasoning inline.
>
> Thanks,
> Sahil
>
> [1] https://lkml.rescloud.iu.edu/2203.0/05974.html
> [2] https://github.com/torvalds/linux/tree/master/lib/tests
> [3] https://github.com/torvalds/linux/tree/master/samples/kprobes
> [4] https://github.com/valdaarhun/or-dev
> [5] https://lwn.net/ml/all/20260407185650.79816-1-sahilcdq0@gmail.com/
> [6] https://sashiko.dev/#/patchset/20260407185650.79816-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 | 84 ++++
> arch/openrisc/kernel/kprobes.c | 400 ++++++++++++++++++
> arch/openrisc/kernel/rethook.c | 32 ++
> arch/openrisc/kernel/rethook.h | 8 +
> arch/openrisc/kernel/rethook_trampoline.S | 97 +++++
> 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 | 147 +++++++
> 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, 1152 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@kernel.org>
next prev parent reply other threads:[~2026-10-13 4:22 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-07 18:56 [RFC 0/2] openrisc: Add support for KProbes Sahil Siddiq
2026-04-07 18:56 ` [RFC 1/2] openrisc: Add utilities and clean up simulation of instructions Sahil Siddiq
2026-04-14 17:11 ` Stafford Horne
2026-04-15 6:10 ` Sahil
2026-04-15 6:39 ` Masami Hiramatsu
2026-04-16 4:57 ` Sahil
2026-09-30 20:31 ` [PATCH v2 0/4] openrisc: Add support for KProbes Sahil Siddiq
2026-09-30 21:18 ` Sahil
2026-10-13 4:22 ` Masami Hiramatsu [this message]
2026-10-13 4:41 ` Sahil
2026-09-30 20:31 ` [PATCH v2 1/4] openrisc: Add utilities and clean up simulation of instructions Sahil Siddiq
2026-09-30 20:46 ` sashiko-bot
2026-09-30 20:31 ` [PATCH v2 2/4] openrisc: Add KProbes Sahil Siddiq
2026-09-30 20:46 ` sashiko-bot
2026-09-30 20:31 ` [PATCH v2 3/4] openrisc: Add unit tests for KProbes on branch instructions Sahil Siddiq
2026-09-30 20:41 ` sashiko-bot
2026-09-30 20:31 ` [PATCH v2 4/4] openrisc: Add Kretprobes Sahil Siddiq
2026-09-30 20:41 ` sashiko-bot
2026-04-07 18:56 ` [RFC 2/2] openrisc: Add KProbes Sahil Siddiq
2026-04-15 6:48 ` [RFC 0/2] openrisc: Add support for KProbes Masami Hiramatsu
2026-04-16 5:00 ` Sahil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261013042255.7DF701F000FF@smtp.kernel.org \
--to=mhiramat@kernel.org \
--cc=davem@davemloft.net \
--cc=jonas@southpole.se \
--cc=kees@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-openrisc@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=namcao@linutronix.de \
--cc=naveen@kernel.org \
--cc=pjw@kernel.org \
--cc=sahilcdq0@gmail.com \
--cc=shorne@gmail.com \
--cc=stefan.kristiansson@saunalahti.fi \
--cc=tytso@mit.edu \
--cc=wangruikang@iscas.ac.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.