From: Jim Keniston <jkenisto@us.ibm.com>
To: ananth@in.ibm.com
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
Ingo Molnar <mingo@elte.hu>,
Arnaldo Carvalho de Melo <acme@infradead.org>,
Peter Zijlstra <peterz@infradead.org>,
utrace-devel <utrace-devel@redhat.com>,
Mark Wielaard <mjw@redhat.com>,
Masami Hiramatsu <mhiramat@redhat.com>,
Maneesh Soni <maneesh@in.ibm.com>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] [PATCH 4/7] Uprobes Implementation
Date: Tue, 12 Jan 2010 16:53:48 -0800 [thread overview]
Message-ID: <1263344028.4983.35.camel@localhost.localdomain> (raw)
In-Reply-To: <20100112081412.GD28425@in.ibm.com>
On Tue, 2010-01-12 at 13:44 +0530, Ananth N Mavinakayanahalli wrote:
> On Tue, Jan 12, 2010 at 06:36:00AM +0100, Frederic Weisbecker wrote:
...
> > So, as stated before, uprobe seems to handle too much standalone
> > policies such as freeing on exec, always inherit on clone and never
> > on fork. Such rules should be decided from uprobe clients not
> > from uprobe itself and that makes it not enough flexible to
> > be usable for now.
>
> The freeing on exec is only housekeeping of uprobe data structures. And
> probepoints are inherited only on CLONE_THREAD and not otherwise, simply
> since the existing probes can be hit in the new thread's context. Not
> sure what other policy you are hinting at.
>
...
> >
> >
> > Typically, to use it with perf toward a pmu, perf tools need to
> > create a uprobe on perf process and activate its hook on the next exec.
> > Thereafter, it's up to perf to decide if we inherit through clone
> > and fork.
>
> As mentioned above, the inheritance is only for threads. It should be
> fairly easy to inherit probes on fork, and that can be made a perf based
> policy decision.
>
One reason we don't currently support inheritance (or cloning) of
uprobes across fork is that a uprobe object is (a) per-process (and I
think we want to keep it that way); and (b) owned by the uprobes client.
That is, the client creates and populates that uprobe object, and passes
a pointer to it to both register_uprobe() and unregister_uprobe(). We
could clone this object on fork, but then how would the client refer to
the cloned uprobes in the new process -- e.g., to unregister them?
I guess each cloned uprobe could remember its "patriarch" uprobe -- its
ultimate ancestor, the one created by the client; and we could add an
"unregister_uprobe_clone" function that takes both the address of the
patriarch uprobe and the pid of the (clone) uprobe to be unregistered.
It has also been suggested that it might be more user-friendly to
let the client discard (or reuse) the uprobe object as soon as
register_uprobe() returns. register_uprobe() would presumably copy
everything it needs from the uprobe to the uprobe_kimg, and pass back
a handle (e.g., the address of the uprobe_kimg) that the client can
later pass to unregister_uprobe() -- or unregister_uprobe_clone(). (In
this case, only the uprobe_kimg would be cloned.) It might be good to
consider both these enhancement requests together.
Anyway, as previously described, the clone-on-fork feature can be (and
has been) implemented by a utrace-based task-finder that notices forks,
and creates and registers a whole new set of uprobes for the new
process.
Jim
next prev parent reply other threads:[~2010-01-13 0:54 UTC|newest]
Thread overview: 158+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-11 12:25 [RFC] [PATCH 0/7] UBP, XOL and Uprobes Srikar Dronamraju
2010-01-11 12:25 ` [RFC] [PATCH 1/7] User Space Breakpoint Assistance Layer (UBP) Srikar Dronamraju
2010-01-14 11:08 ` Peter Zijlstra
2010-01-14 19:46 ` Jim Keniston
2010-01-15 9:02 ` Peter Zijlstra
2010-01-15 21:07 ` Jim Keniston
2010-01-15 21:49 ` Peter Zijlstra
2010-01-16 0:58 ` Jim Keniston
2010-01-16 10:33 ` Peter Zijlstra
2010-01-17 0:12 ` Bryan Donlan
2010-01-18 7:37 ` Peter Zijlstra
2010-01-17 14:37 ` Avi Kivity
2010-01-15 9:03 ` Peter Zijlstra
2010-01-15 9:38 ` Ananth N Mavinakayanahalli
2010-01-15 9:50 ` Peter Zijlstra
2010-01-15 10:10 ` Ananth N Mavinakayanahalli
2010-01-15 10:13 ` Peter Zijlstra
2010-01-15 10:22 ` Ananth N Mavinakayanahalli
2010-01-15 10:56 ` Peter Zijlstra
2010-01-15 11:02 ` Peter Zijlstra
2010-01-15 21:19 ` Jim Keniston
2010-01-17 14:39 ` Avi Kivity
2010-01-17 14:52 ` Peter Zijlstra
2010-01-17 14:56 ` Avi Kivity
2010-01-17 15:01 ` Peter Zijlstra
2010-01-20 12:55 ` Pavel Machek
2010-01-17 14:59 ` Avi Kivity
2010-01-17 15:03 ` Peter Zijlstra
2010-01-17 19:33 ` Avi Kivity
2010-01-18 7:45 ` Peter Zijlstra
2010-01-18 11:01 ` Avi Kivity
2010-01-18 11:44 ` Peter Zijlstra
2010-01-18 12:01 ` Avi Kivity
2010-01-18 12:06 ` Peter Zijlstra
2010-01-18 12:09 ` Avi Kivity
2010-01-18 12:13 ` Pekka Enberg
2010-01-18 12:17 ` Avi Kivity
2010-01-18 12:24 ` Peter Zijlstra
2010-01-18 12:24 ` Pekka Enberg
2010-01-18 12:44 ` Srikar Dronamraju
2010-01-18 12:51 ` Pekka Enberg
2010-01-18 12:53 ` Avi Kivity
2010-01-18 12:57 ` Pekka Enberg
2010-01-18 13:06 ` Avi Kivity
2010-01-18 22:15 ` Jim Keniston
2010-01-19 8:07 ` Avi Kivity
2010-01-19 17:47 ` Jim Keniston
2010-01-19 18:06 ` Frederic Weisbecker
2010-01-20 6:36 ` Srikar Dronamraju
2010-01-20 10:51 ` Frederic Weisbecker
2010-01-20 19:31 ` Masami Hiramatsu
2010-01-20 9:43 ` Avi Kivity
2010-01-20 9:57 ` Peter Zijlstra
2010-01-20 12:22 ` Avi Kivity
2010-01-27 8:24 ` Ingo Molnar
2010-01-27 8:35 ` Avi Kivity
2010-01-27 9:08 ` Ingo Molnar
2010-01-27 9:25 ` Avi Kivity
2010-01-27 10:23 ` Ingo Molnar
2010-02-07 13:47 ` Avi Kivity
2010-01-20 10:45 ` Srikar Dronamraju
2010-01-20 12:23 ` Avi Kivity
2010-01-20 18:31 ` Andi Kleen
2010-01-20 19:34 ` Jim Keniston
2010-01-20 19:58 ` Andi Kleen
2010-01-20 20:28 ` Jim Keniston
2010-01-18 13:05 ` Peter Zijlstra
2010-01-18 13:34 ` Mark Wielaard
2010-01-18 19:49 ` Jim Keniston
2010-01-18 15:43 ` Ananth N Mavinakayanahalli
2010-01-18 16:52 ` Avi Kivity
2010-01-18 17:10 ` Ananth N Mavinakayanahalli
2010-01-18 12:14 ` Peter Zijlstra
2010-01-18 12:37 ` Avi Kivity
2010-01-18 13:15 ` Peter Zijlstra
2010-01-18 13:33 ` Avi Kivity
2010-01-18 13:34 ` K.Prasad
2010-01-20 15:57 ` Mel Gorman
2010-01-20 18:32 ` Andi Kleen
2010-01-18 11:45 ` Peter Zijlstra
2010-01-11 12:25 ` [RFC] [PATCH 2/7] x86 support for UBP Srikar Dronamraju
2010-01-11 12:25 ` [RFC] [PATCH 3/7] Execution out of line (XOL) Srikar Dronamraju
2010-01-14 11:08 ` Peter Zijlstra
2010-01-14 22:43 ` Jim Keniston
2010-01-15 9:07 ` Peter Zijlstra
2010-01-15 11:12 ` Srikar Dronamraju
2010-01-15 20:18 ` Jim Keniston
2010-01-11 12:25 ` [RFC] [PATCH 4/7] Uprobes Implementation Srikar Dronamraju
2010-01-12 2:01 ` Paul E. McKenney
2010-01-12 8:21 ` Srikar Dronamraju
2010-01-12 5:36 ` Frederic Weisbecker
2010-01-12 8:14 ` Ananth N Mavinakayanahalli
2010-01-13 0:53 ` Jim Keniston [this message]
2010-01-14 11:12 ` Peter Zijlstra
2010-01-12 8:54 ` Srikar Dronamraju
2010-01-14 11:09 ` Peter Zijlstra
2010-01-14 22:49 ` Jim Keniston
2010-01-15 9:10 ` Peter Zijlstra
2010-01-15 9:26 ` Frank Ch. Eigler
2010-01-15 9:35 ` Peter Zijlstra
2010-01-15 13:10 ` Frank Ch. Eigler
2010-01-15 13:25 ` Peter Zijlstra
2010-01-15 13:38 ` Frank Ch. Eigler
2010-01-15 13:47 ` Peter Zijlstra
2010-01-15 14:00 ` Frank Ch. Eigler
2010-01-15 14:06 ` Peter Zijlstra
2010-01-15 14:22 ` Frank Ch. Eigler
2010-01-15 14:40 ` Peter Zijlstra
2010-01-15 14:20 ` Srikar Dronamraju
2010-01-15 14:25 ` Peter Zijlstra
2010-01-15 23:11 ` Jim Keniston
2010-01-16 15:50 ` Frank Ch. Eigler
2010-01-15 10:26 ` Srikar Dronamraju
2010-01-15 10:33 ` Peter Zijlstra
2010-01-15 11:05 ` Maneesh Soni
2010-01-15 11:12 ` Peter Zijlstra
2010-01-15 11:18 ` Peter Zijlstra
2010-01-15 22:27 ` Jim Keniston
2010-01-15 23:44 ` Jim Keniston
2010-01-16 10:04 ` Peter Zijlstra
2010-01-15 13:08 ` Srikar Dronamraju
2010-01-15 13:16 ` Peter Zijlstra
2010-01-15 13:38 ` Peter Zijlstra
2010-01-11 12:25 ` [RFC] [PATCH 5/7] X86 Support for Uprobes Srikar Dronamraju
2010-01-14 11:13 ` Peter Zijlstra
2010-01-14 23:07 ` Jim Keniston
2010-01-11 12:26 ` [RFC] [PATCH 6/7] Uprobes Documentation Srikar Dronamraju
2010-01-11 12:26 ` [RFC] [PATCH 7/7] Ftrace plugin for Uprobes Srikar Dronamraju
2010-01-12 4:54 ` Frederic Weisbecker
2010-01-12 5:08 ` Steven Rostedt
2010-01-12 5:44 ` Frederic Weisbecker
2010-01-12 19:12 ` Tim Bird
2010-01-13 21:58 ` Masami Hiramatsu
2010-01-13 22:12 ` Masami Hiramatsu
2010-01-13 23:36 ` Steven Rostedt
2010-01-12 18:54 ` Frank Ch. Eigler
2010-01-12 22:00 ` Masami Hiramatsu
2010-01-12 22:15 ` Frank Ch. Eigler
2010-01-12 22:30 ` Masami Hiramatsu
2010-01-14 11:23 ` Peter Zijlstra
2010-01-14 11:29 ` Peter Zijlstra
2010-01-14 12:16 ` Mark Wielaard
2010-01-14 12:19 ` Peter Zijlstra
2010-01-14 11:35 ` Frederic Weisbecker
2010-01-14 11:43 ` Peter Zijlstra
2010-01-14 12:23 ` Frederic Weisbecker
2010-01-14 12:29 ` Peter Zijlstra
2010-01-18 13:00 ` Frederic Weisbecker
2010-01-11 14:35 ` [RFC] [PATCH 0/7] UBP, XOL and Uprobes Masami Hiramatsu
2010-01-11 22:59 ` Jim Keniston
2010-01-22 7:02 ` [RFC] [PATCH 0/7] UBP, XOL and Uprobes [ Summary of Comments and actions to be taken ] Srikar Dronamraju
2010-01-22 7:24 ` Ananth N Mavinakayanahalli
2010-01-22 10:47 ` Peter Zijlstra
2010-01-27 6:53 ` Peter Zijlstra
2010-01-27 8:24 ` Peter Zijlstra
2010-01-22 18:06 ` Peter Zijlstra
2010-01-22 18:36 ` Masami Hiramatsu
2010-01-22 23:55 ` Jim Keniston
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=1263344028.4983.35.camel@localhost.localdomain \
--to=jkenisto@us.ibm.com \
--cc=acme@infradead.org \
--cc=ananth@in.ibm.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maneesh@in.ibm.com \
--cc=mhiramat@redhat.com \
--cc=mingo@elte.hu \
--cc=mjw@redhat.com \
--cc=peterz@infradead.org \
--cc=srikar@linux.vnet.ibm.com \
--cc=utrace-devel@redhat.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