From: "Jon Medhurst (Tixy)" <tixy@linaro.org>
To: Dave Martin <dave.martin@linaro.org>
Cc: Rabin Vincent <rabin@rab.in>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Peter Zijlstra <peterz@infradead.org>,
Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
oleg@redhat.com
Subject: Re: [PATCH 9/9] ARM: add uprobes support
Date: Wed, 17 Oct 2012 15:50:48 +0100 [thread overview]
Message-ID: <1350485448.3206.146.camel@linaro1.home> (raw)
In-Reply-To: <20121015174450.GB18614@linaro.org>
On Mon, 2012-10-15 at 18:44 +0100, Dave Martin wrote:
> On Mon, Oct 15, 2012 at 01:44:55PM +0200, Rabin Vincent wrote:
> > 2012/10/15 Dave Martin <dave.martin@linaro.org>:
> > > On Sun, Oct 14, 2012 at 09:23:13PM +0200, Rabin Vincent wrote:
> > >> Add basic uprobes support for ARM.
> > >>
> > >> perf probe --exec and SystemTap's userspace probing work. The ARM
> > >> kprobes test code has also been run in a userspace harness to test the
> > >> uprobe instruction decoding.
> > >
> > > The assumption that the target code is ARM appears to be buried all over
> > > the place.
> >
> > Right, as stated:
> >
> > >> Caveats:
> > >> - Thumb is not supported
> >
> > > Certainly this code as currently written must depend on !THUMB2_KERNEL.
> >
> > Why? It currently works for ARM userspace even if the kernel is
> > Thumb-2.
>
> My bad, I misread what was happening in the Makefile changes.
>
> My concern is about whether we can build the ARM and Thumb-2 kprobes
> code into the same kernel. If so, no problem, but I believe this is
> not a tested configuration for kprobes itself.
When reworking kprobes I originally started by having ARM instruction
support in Thumb kernels (with all test cases working) and, if I
remember correct, this got dropped because we had difficulty in coming
up with a robust way of specifying whether a probe pointer was in Thumb
code or not. (Different methods of getting pointers to Thumb code didn't
always set bit 0 so we 'solved' this by ignoring bit 0 and assuming all
code in Thumb kernels was Thumb.)
<snip>
> General question which I'm not sure I understand yet: is is possible
> to combine uprobes/kprobes decode more completely? It's not obvious
> to me whether the uprobes-specific decoding only relates to features
> which architecturally execute differently in user mode versus
> privileged mode. Some explanation somewhere could be helpful.
I just been looking at the decoding changes in patch 8 and had similar
thoughts. The patch as it stands looks rather bolted on the side and
makes the resulting code rather messy. My initial thoughts are that
either:
a) uprobes is similar enough to kprobes that the existing code can be
morphed into something that cleanly supports both, or
b) the similarities aren't close enough and that we should factor out
the similarities into a more generalised decoding base, which the
{u,k}probe code can then build on.
c) some mix of a) and b)
I can't help but think of the various calls over the past year or so for
a general ARM/Thumb instruction decoding framework (the last one only a
few weeks ago on the linux-arm-kernel list). Perhaps b) would be a small
step towards that.
I hope to find some time to understand the uprobe patches in more
detail, so I can try and come up with some sensible suggestions on a
cleaner solution; because I feel that as they stand they aren't really
suitable for inclusion in the kernel.
Rabin, what tree/commit are your patches based on? (They don't seem to
apply cleanly to 3.6 or 3.7-rc1.) I want to apply them locally so I can
use my favourite visualisation tool and to play with them.
Thanks
--
Tixy
next prev parent reply other threads:[~2012-10-17 14:51 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-14 19:23 [PATCH 1/9] uprobes: move function declarations out of arch Rabin Vincent
2012-10-14 19:23 ` [PATCH 2/9] uprobes: check for single step support Rabin Vincent
2012-10-17 16:40 ` Srikar Dronamraju
2012-10-17 17:02 ` Oleg Nesterov
2012-10-14 19:23 ` [PATCH 3/9] uprobes: allow ignoring of probe hits Rabin Vincent
2012-10-15 16:52 ` Oleg Nesterov
2012-10-16 20:11 ` Rabin Vincent
2012-10-17 17:35 ` Oleg Nesterov
2012-10-21 18:15 ` Rabin Vincent
2012-10-21 19:40 ` Oleg Nesterov
2012-10-17 16:52 ` Srikar Dronamraju
2012-10-14 19:23 ` [PATCH 4/9] uprobes: allow arch access to xol slot Rabin Vincent
2012-10-17 17:17 ` Srikar Dronamraju
2012-10-14 19:23 ` [PATCH 5/9] uprobes: allow arch-specific initialization Rabin Vincent
2012-10-18 9:39 ` Srikar Dronamraju
2012-10-14 19:23 ` [PATCH 6/9] uprobes: flush cache after xol write Rabin Vincent
2012-10-15 16:57 ` Oleg Nesterov
2012-10-16 20:29 ` Rabin Vincent
2012-10-25 14:58 ` Oleg Nesterov
2012-10-26 5:52 ` Ananth N Mavinakayanahalli
2012-10-26 16:39 ` Oleg Nesterov
2012-10-29 5:35 ` Ananth N Mavinakayanahalli
2012-11-03 16:33 ` Oleg Nesterov
2012-11-04 14:29 ` Ananth N Mavinakayanahalli
2012-11-14 17:37 ` Oleg Nesterov
2012-10-14 19:23 ` [PATCH 7/9] uprobes: add arch write opcode hook Rabin Vincent
2012-10-14 19:23 ` [PATCH 8/9] ARM: support uprobe handling Rabin Vincent
2012-11-04 10:13 ` Russell King - ARM Linux
2012-11-12 17:26 ` Rabin Vincent
2012-10-14 19:23 ` [PATCH 9/9] ARM: add uprobes support Rabin Vincent
2012-10-15 11:14 ` Dave Martin
2012-10-15 11:44 ` Rabin Vincent
2012-10-15 17:44 ` Dave Martin
2012-10-17 14:50 ` Jon Medhurst (Tixy) [this message]
2012-10-21 18:43 ` Rabin Vincent
2012-10-21 18:59 ` Rabin Vincent
2012-10-15 17:31 ` Dave Martin
2012-10-21 18:27 ` Rabin Vincent
2012-10-17 17:54 ` Oleg Nesterov
2012-10-15 17:19 ` [PATCH 1/9] uprobes: move function declarations out of arch Srikar Dronamraju
2012-10-16 20:30 ` Rabin Vincent
-- strict thread matches above, loose matches on Subject: below --
2013-08-01 23:45 [PATCH 0/9] uprobes: Add uprobes support for ARM David Long
2013-08-01 23:45 ` [PATCH 9/9] ARM: add uprobes support David Long
2013-08-29 14:54 ` Jon Medhurst (Tixy)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1350485448.3206.146.camel@linaro1.home \
--to=tixy@linaro.org \
--cc=dave.martin@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=rabin@rab.in \
--cc=srikar@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).