Messages in this thread | | | Date | Tue, 25 Aug 2009 16:12:07 +0530 | Subject | ARM + jprobes/kretprobes SEGV/hangs/OOPS in 2.6.29 kernel | From | venki kaps <> |
| |
Hi,
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 do_execve/sys_open/sys_close/sys_read/sys_write/, 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)
{ jprobe_return(); 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.kp.addr, my_jprobe.entry);
return 0; }
static void __exit jprobe_exit(void) { unregister_jprobe(&my_jprobe); printk("%s %d,jprobe unregistered\n", __FILE__, __LINE__); }
And also system hangs for sys_open/sys_close/sys_read/sys_write with jprobes/kretprobes but there are no issues with kprobes.
Query: ===== - Are there any limitations for jptobes/kretporbes in mainline kernel for ARM? - Why it works for only do_fork and why not for others (do_execve/sys_open/sys_close/sys_read/sys_write)? - Is it required any additional setup to achieve this?
Please give your valuable comments.
Thanks in advance.
Best regards, Venkappa
| |