What is the role of undefined exception handler (__und_svc) in kprobes?

Viewed 1073

I tried to convert the kprobe as loadable kernel module.

I am able to run the samples available in samples/kprobes/ folder from kernel tree.

If we configure kprobes in kernel(CONFIG_KPROBES), then svc_entry macro will be expanded with 64 bytes in __und_svc() handler.

Reference : http://lxr.free-electrons.com/source/arch/arm/kernel/entry-armv.S?a=arm#L245

My aim is without touching kernel side, make kprobe as kernel module.

so kernel is compiled without enabling CONFIG_KPROBES. so svc_entry macro will be expanded with 0 in __und_svc()

I would like to get cleared from these doubts.

  1. If kprobe is handled undefined instruction exception(bcos kprobe only created), then why __und_svc() is invoked. what is the role of __und_svc() handler with respect to kprobes??

  2. If 64 bytes memory is compulsory, then how to allocate without compiling the kernel. i.e How to do it dynamically.??

Please share your knowledge.

1 Answers
Related