ARM + jprobes/kretprobes SEGV/hangs/OOPS in 2.6.29 kernel

From: venki kaps
Date: Tue Aug 25 2009 - 06:42:18 EST


I have been tracing kernel system call information using
the Kprobes/jprobes/kretprobes implementation in the 2.6.29 kernel on
ARM architecture.
Although the mainline kprobe/jprobe/kretprobe examples are working
fine (do_fork),
I have been facing some issues while running my own jprobe/kretprobe tests.

For instance, when I am planting jprobe at
after registration of probe, segmentation fault is getting generated.
The following is my code snapshot-

static int
jdo_execve(char * filename,
char __user *__user *argv,
char __user *__user *envp,
struct pt_regs * regs)

return 0;

static struct jprobe my_jprobe = {
.entry = jdo_execve,
.kp = {
.symbol_name = "do_execve",


static int __init jprobe_init(void) {

if ((register_jprobe(&my_jprobe)) < 0) {
printk("%s %d,register_jprobe failed, returned\n", __FILE__, __LINE__);
return -1;
printk("%s %d,Planted jprobe at %p, handler addr %p\n", __FILE__, __LINE__,, my_jprobe.entry);

return 0;

static void __exit jprobe_exit(void) {
printk("%s %d,jprobe unregistered\n", __FILE__, __LINE__);

And also system hangs for sys_open/sys_close/sys_read/sys_write with
but there are no issues with kprobes.

- Are there any limitations for jptobes/kretporbes in mainline kernel for ARM?
- Why it works for only do_fork and why not for others
- Is it required any additional setup to achieve this?

Please give your valuable comments.

Thanks in advance.

Best regards,
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at