Role of svc_entry macro with 64 bytes in kprobes/systemtap on ARM

Jey Jay rjayavrp2@gmail.com
Thu Dec 12 03:10:00 GMT 2013


Hi,

Currently Im working on "systemtap" and "kprobes".

My current work is to convert the kprobes in to loadable kernel
module(.ko) on arm architecture.

Converted module is able to run the examples in
"http://lxr.free-electrons.com/source/samples/kprobes/?a=arm".

But few systemtap scripts like

1. https://sourceware.org/systemtap/SystemTap_Beginners_Guide/traceiosect.html
2. https://sourceware.org/systemtap/SystemTap_Beginners_Guide/mainsect-disk.html#disktop

producing kernel panics.

We don't want to recompile kernel. so CONFIG_KPROBES is not set.

Because CONFIG_KPROBES, In the following file

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

#ifdef CONFIG_KPROBES
@ If a kprobe is about to simulate a "stmdb sp..." instruction,
@ it obviously needs free stack space which then will belong to
@ the saved context.
    svc_entry 64
#else
        svc_entry
#endif


svc_entry macro is not expanded with 64. I am not sure with
relationship between svc_entry macro and kprobes.

Im getting problem exactly in
http://lxr.free-electrons.com/source/arch/arm/kernel/kprobes-common.c?a=arm#L246

Please share your knowledge.

Thanks and Regards
Jeyaram



More information about the Systemtap mailing list