* [PATCH] riscv: kprobes: Add test case for c.jal instruction simulation
@ 2026-06-27 11:50 Nam Cao
2026-07-01 10:46 ` Xiaofeng Yuan
2026-07-10 18:40 ` patchwork-bot+linux-riscv
0 siblings, 2 replies; 3+ messages in thread
From: Nam Cao @ 2026-06-27 11:50 UTC (permalink / raw)
To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
linux-riscv, linux-kernel
Cc: Nam Cao
Add test validating that kprobes correctly simulate the c.jal
instruction.
Signed-off-by: Nam Cao <namcao@linutronix.de>
---
the test fails without c.jal simulation patch:
https://lore.kernel.org/linux-riscv/20260627001939.3847-1-xiaofengmian@163.com/
---
.../kernel/tests/kprobes/test-kprobes-asm.S | 24 +++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/arch/riscv/kernel/tests/kprobes/test-kprobes-asm.S b/arch/riscv/kernel/tests/kprobes/test-kprobes-asm.S
index f16deee9e091..15e50934bbd7 100644
--- a/arch/riscv/kernel/tests/kprobes/test-kprobes-asm.S
+++ b/arch/riscv/kernel/tests/kprobes/test-kprobes-asm.S
@@ -179,6 +179,23 @@ test_kprobes_c_bnez_addr3:
ret
SYM_FUNC_END(test_kprobes_c_bnez)
+#ifdef CONFIG_32BIT
+SYM_FUNC_START(test_kprobes_c_jal)
+ li a0, 0
+ mv a1, ra
+test_kprobes_c_jal_addr1:
+ c.jal 2f
+ ret
+1: li a0, KPROBE_TEST_MAGIC_UPPER
+ ret
+test_kprobes_c_jal_addr2:
+2: c.jal 1b
+ li a2, KPROBE_TEST_MAGIC_LOWER
+ add a0, a0, a2
+ jr a1
+SYM_FUNC_END(test_kprobes_c_jal)
+#endif
+
#endif /* CONFIG_RISCV_ISA_C */
.section .rodata
@@ -209,6 +226,10 @@ SYM_DATA_START(test_kprobes_addresses)
RISCV_PTR test_kprobes_c_bnez_addr1
RISCV_PTR test_kprobes_c_bnez_addr2
RISCV_PTR test_kprobes_c_bnez_addr3
+#ifdef CONFIG_32BIT
+ RISCV_PTR test_kprobes_c_jal_addr1
+ RISCV_PTR test_kprobes_c_jal_addr2
+#endif
#endif /* CONFIG_RISCV_ISA_C */
RISCV_PTR 0
SYM_DATA_END(test_kprobes_addresses)
@@ -226,6 +247,9 @@ SYM_DATA_START(test_kprobes_functions)
RISCV_PTR test_kprobes_c_jalr
RISCV_PTR test_kprobes_c_beqz
RISCV_PTR test_kprobes_c_bnez
+#ifdef CONFIG_32BIT
+ RISCV_PTR test_kprobes_c_jal
+#endif
#endif /* CONFIG_RISCV_ISA_C */
RISCV_PTR 0
SYM_DATA_END(test_kprobes_functions)
--
2.47.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] riscv: kprobes: Add test case for c.jal instruction simulation
2026-06-27 11:50 [PATCH] riscv: kprobes: Add test case for c.jal instruction simulation Nam Cao
@ 2026-07-01 10:46 ` Xiaofeng Yuan
2026-07-10 18:40 ` patchwork-bot+linux-riscv
1 sibling, 0 replies; 3+ messages in thread
From: Xiaofeng Yuan @ 2026-07-01 10:46 UTC (permalink / raw)
To: Nam Cao; +Cc: Charlie Jenkins, linux-riscv, linux-kernel, Xiaofeng Yuan
Hi Nam,
Thanks again for the test case — it has been included in the v6 c.jal
series, credited to you.
Regarding the QEMU hang I asked you about earlier: I found the root
cause. The hang was not a QEMU issue — it was caused by
EXECMEM_KPROBES allocating read-only pages without writable
permissions when CONFIG_STRICT_MODULE_RWX is not enabled (as happens
with an allnoconfig-derived config). This affects both RV32 and RV64.
I have submitted a separate fix series titled "riscv: fix kprobes on
minimal kernel configs" to address this.
Best regards,
Xiaofeng
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] riscv: kprobes: Add test case for c.jal instruction simulation
2026-06-27 11:50 [PATCH] riscv: kprobes: Add test case for c.jal instruction simulation Nam Cao
2026-07-01 10:46 ` Xiaofeng Yuan
@ 2026-07-10 18:40 ` patchwork-bot+linux-riscv
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+linux-riscv @ 2026-07-10 18:40 UTC (permalink / raw)
To: Nam Cao; +Cc: linux-riscv, pjw, palmer, aou, alex, linux-kernel
Hello:
This patch was applied to riscv/linux.git (for-next)
by Paul Walmsley <pjw@kernel.org>:
On Sat, 27 Jun 2026 13:50:51 +0200 you wrote:
> Add test validating that kprobes correctly simulate the c.jal
> instruction.
>
> Signed-off-by: Nam Cao <namcao@linutronix.de>
> ---
> the test fails without c.jal simulation patch:
> https://lore.kernel.org/linux-riscv/20260627001939.3847-1-xiaofengmian@163.com/
>
> [...]
Here is the summary with links:
- riscv: kprobes: Add test case for c.jal instruction simulation
https://git.kernel.org/riscv/c/0161aa173c38
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-10 18:40 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-27 11:50 [PATCH] riscv: kprobes: Add test case for c.jal instruction simulation Nam Cao
2026-07-01 10:46 ` Xiaofeng Yuan
2026-07-10 18:40 ` patchwork-bot+linux-riscv
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox