User: Password:
|
|
Subscribe / Log in / New account

uprobes/tracing: uretprobes

From:  Oleg Nesterov <oleg@redhat.com>
To:  Ananth N Mavinakayanahalli <ananth@in.ibm.com>, Srikar Dronamraju <srikar@linux.vnet.ibm.com>, Steven Rostedt <rostedt@goodmis.org>
Subject:  [PATCH 0/6] uprobes/tracing: uretprobes
Date:  Mon, 1 Apr 2013 18:08:27 +0200
Message-ID:  <20130401160827.GA19206@redhat.com>
Cc:  Anton Arapov <anton@redhat.com>, Frederic Weisbecker <fweisbec@gmail.com>, Ingo Molnar <mingo@redhat.com>, linux-kernel@vger.kernel.org
Archive-link:  Article

On 03/29, Oleg Nesterov wrote:
>
> uretprobes code is almost ready, we need to teach trace_uprobe.c
> to support them.
>
> This looks simple, but there is a nasty complication. We do not
> want to copy-and-paste the code like trace_kprobe.c does. Just look
> at kprobe_event_define_fields() and kretprobe_event_define_fields().
> They are non-trivial but almost identical. And there are a lot more
> examples.
>
> So I'd like to send 4/4 for review before I'll do other changes.
> The patch itself doesn't make sense and complicates the source code a
> bit. But note how easy we can change, say, uprobe_event_define_fields(),
>
> 	-	DEFINE_FIELD(vaddr[0], FIELD_STRING_IP);
> 	-	size = SIZEOF_TRACE_ENTRY(1);
> 	+	if (!trace_probe_is_return(tu)) {
> 	+		DEFINE_FIELD(vaddr[0], FIELD_STRING_IP);
> 	+		size = SIZEOF_TRACE_ENTRY(1);
> 	+	} else {
> 	+		DEFINE_FIELD(vaddr[0], FIELD_STRING_FUNC);
> 	+		DEFINE_FIELD(vaddr[1], FIELD_STRING_RETIP);
> 	+		size = SIZEOF_TRACE_ENTRY(2);
> 	+	}
>
> without copy-and-paste. The same simple change is possible for other
> helpers playing with uprobe_trace_entry_head.

And the rest of the necessary changes to support uretprobes.

To remind, this is on top of Anton's uretprobes implementation which is
not finished yet. This series can't be even compiled, but I think it can
be already reviewed. All it needs to compile is the new
uprobe_consumer->ret_handler().

Oleg.

 kernel/trace/trace_uprobe.c |  152 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 124 insertions(+), 28 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds