This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Kprobes Support for ARM arch
- From: Ananth N Mavinakayanahalli <ananth at in dot ibm dot com>
- To: rsmadhvesh at vsnl dot net
- Cc: systemtap at sources dot redhat dot com, madhvesh dot s at ap dot sony dot com, lubna at ap dot sony dot com, satish dot v at ap dot sony dot com
- Date: Fri, 12 Jan 2007 11:01:57 +0530
- Subject: Re: Kprobes Support for ARM arch
- References: <e3fee14ecb18.45a696cf@vsnl.net>
- Reply-to: ananth at in dot ibm dot com
On Thu, Jan 11, 2007 at 07:58:07PM +0500, rsmadhvesh@vsnl.net wrote:
Hi Madhvesh,
> Hi All,
>
> Recently we completed the kprobes support for ARM architecture
> targetted at 2.6.16 kernel. I have uploaded these patches in the
> below CELF wiki page along with few test programs.
> This implementation is tested using 2.6.16-24 kernel for
> OMAP5912 OSK reference platform.
I am not familiar with the ARM architecture details... the following
comments are from a quick glance at the patch.
> The patch is available in the below CELF wiki page
> http://tree.celinuxforum.org/CelfPubWiki/PatchArchive
>
> The patch can be downloaded directly from here
> http://tree.celinuxforum.org/CelfPubWiki/PatchArchive?action=AttachFile&do=get&target=kprobes-arm-patches-2.6.16.24.tgz
>
> This implementation supports only kprobes and doesnot
> support any other variants like jprobes, kretprobes etc.
> Also it doesnot support branch/jump instructions probing.
How are you ensuring that a kprobe register request on a branch/jump
instruction fails? I don't see any profiling done to verify what the
underlying instruction is.
See arch_prepare_kprobe() from the powerpc port as to how we fail kprobe
registration on certain instructions.
> I noticed some discussions regarding ARM kprobes in the
> archive. We are open to suggestions and how this implementation can
> be improved.
Given that quite a bit of the kprobes code for any platform is
architecture specific, its important that your code gets reviewed by the
ARM kernel gurus/maintainers, if you intend that the patch be included
in the mainline Linux kernels.
Also, you may want to port the patch to the latest kernel. There have
been some interface changes:
- kprobe modules are more portable with the addition of in-kernel symbol
lookup.
- The page fault case gets its own notifier so there isn't a penalty paid
when kprobes aren't in use.
Good work!
Ananth