From: Jason Baron <jbaron@redhat.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: "Frank Ch. Eigler" <fche@redhat.com>,
Arjan van de Ven <arjan@infradead.org>,
Steven Rostedt <rostedt@goodmis.org>,
linux-kernel@vger.kernel.org, mingo@elte.hu, alan@redhat.com,
Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Subject: Re: [PATCH] ftrace: add an fsync tracer
Date: Thu, 6 Nov 2008 16:18:56 -0500 [thread overview]
Message-ID: <20081106211856.GC3167@redhat.com> (raw)
In-Reply-To: <1226003343.31966.43.camel@lappy.programming.kicks-ass.net>
On Thu, Nov 06, 2008 at 09:29:03PM +0100, Peter Zijlstra wrote:
> On Thu, 2008-11-06 at 15:19 -0500, Frank Ch. Eigler wrote:
> > Arjan van de Ven <arjan@infradead.org> writes:
> >
> > > [...]
> > > what is the real need is
> > > 1) Have a trace point in the source
> > > 2) Associate a "formatting function" with that point
> > > (which basically transforms the trace parameters to, say, a string)
> > > 3) A way to turn the trace point on/off.
> >
> > For 1 and 2, it may be worth considering a plain trace_mark() in
> > do_sync(). The complication that makes this uglier than a one-liner
> > is d_path()'s buffer and error handling.
> >
> > {
> > char *buffer = kzalloc (4096, GFP_KERNEL);
> > trace_mark(fsync, "Process %s is calling fsync on %s\n",
> > current->comm,
> > ({char *err = d_path (...);
> > IS_ERR(err) ? "?" : err;}));
> > kfree (buffer);
> > }
> >
> > With a bit of extension on the marker front, the allocation could be
> > made conditional on the marker being enabled.
> >
> >
> > For 3, the kernel could merge a backend that connects arbitrary
> > markers to an ftrace (or whatever) buffer. Several compact prototypes
> > for the latter exist.
>
>
> I prefer we keep using trace points but do what jason has been proposing
> for a while, which is add a format and arg list to the trace point
> definition.
>
> Something like
>
> DEFINE_TRACE_FMT(sched_switch,
> TPPROTO(struct rq *rq, struct task_struct *prev,
> struct task_struct *next),
> TPARGS(rq, prev, next),
> TPFMT("%d to %d\n", prev->pid, next->pid));
>
> Which would be similar to attaching a trace_mark() to the trace point
> and can in these cases save a lot of lines of code.
>
> Both lttng and the ftrace event tracer can use these default text
> strings.
>
indeed...done this way I believe marker registration could then be
done directly with the tracepoint itself. That is, callers that
want the tracepoint interface register directly with the tracepoint and get
called as before. However, callers that want the marker interface register
directly with the tracepoint and get passed the associated marker string and
arguments. Then, we could consolidate kernel/marker.c into kernel/tracepoint.c,
which would simlify things, and reduce code duplication.
thanks,
-Jason
next prev parent reply other threads:[~2008-11-06 21:20 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-05 17:49 [PATCH] ftrace: add an fsync tracer Arjan van de Ven
2008-11-05 19:43 ` Marcin Slusarz
2008-11-05 20:36 ` Arjan van de Ven
2008-11-06 7:20 ` Ingo Molnar
2008-11-06 12:55 ` Peter Zijlstra
2008-11-06 13:28 ` Frédéric Weisbecker
2008-11-06 14:06 ` Arjan van de Ven
2008-11-06 14:19 ` Peter Zijlstra
2008-11-06 14:31 ` Arjan van de Ven
2008-11-06 14:50 ` Peter Zijlstra
2008-11-06 15:01 ` Arjan van de Ven
2008-11-06 15:34 ` Steven Rostedt
2008-11-06 17:45 ` Arjan van de Ven
2008-11-06 20:19 ` Frank Ch. Eigler
2008-11-06 20:29 ` Peter Zijlstra
2008-11-06 20:57 ` Frank Ch. Eigler
2008-11-06 21:18 ` Jason Baron [this message]
2008-11-06 21:53 ` Mathieu Desnoyers
2008-11-06 22:14 ` Frank Ch. Eigler
2008-11-06 22:25 ` Mathieu Desnoyers
2008-11-06 23:25 ` Frank Ch. Eigler
2008-11-07 4:25 ` Arjan van de Ven
2008-11-07 5:12 ` Mathieu Desnoyers
2008-11-06 21:13 ` Arjan van de Ven
2008-11-06 21:20 ` Frank Ch. Eigler
2008-11-06 14:14 ` Arjan van de Ven
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=20081106211856.GC3167@redhat.com \
--to=jbaron@redhat.com \
--cc=alan@redhat.com \
--cc=arjan@infradead.org \
--cc=fche@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.