All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arjan van de Ven <arjan@infradead.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	linux-kernel@vger.kernel.org, mingo@elte.hu, alan@redhat.com
Subject: Re: [PATCH] ftrace: add an fsync tracer
Date: Thu, 6 Nov 2008 07:01:57 -0800	[thread overview]
Message-ID: <20081106070157.065b2dcc@infradead.org> (raw)
In-Reply-To: <1225983052.7803.4623.camel@twins>

On Thu, 06 Nov 2008 15:50:52 +0100
Peter Zijlstra <peterz@infradead.org> wrote:

> On Thu, 2008-11-06 at 06:31 -0800, Arjan van de Ven wrote:
> > On Thu, 06 Nov 2008 15:19:01 +0100
> > Peter Zijlstra <peterz@infradead.org> wrote:
> > 
> > > > a syscall tracer will exactly not tell you which file(name) was
> > > > being fsync()'d which was the whole point.
> > > 
> > > It will tell you the process and the fd, and when you have those
> > > two its a simple step to find the actual file.
> > 
> > actually process+fd is absolutely useless; the typical useage is
> > 
> > fd = open(file)
> > write(fd, <> )
> > fsync(fd);
> > close(fd);
> > 
> > by the time userland gets the data the fd is closed. And heck, even
> > the program may have exited.
> > Really, the fd number is only useful for the program itself, not for
> > any outside part, and especially, later in time.
> 
> The syscall tracer will also have told you about that open.

ok so now you're turning a simple problem into "also track all open,
openat, dup, dup2, close, unix domain fs passing etc". That doesn't
sound like an improvement to me.
And even the "open/fd" family isn't enough, because the open will be
relative pathnames, so I now also need to second guess the PWD, and
then follow a chain of "chdir" calls as well and then resolve the
".."'s in the path. And follow symlinks that may no longer be the same
symlink it used to be. Etc. Etc.

No sorry, this really is not a viable approach.

And that goes beyond the fsync tracer. Anybody who thinks that syscall
tracing is the right approach needs to seriously think about it; it
really looks like the same problem as with audit... it started out with
a bad hack that did it at the syscall level but it was likewise shown
to just not be the right level. I am rather certain that the same will
be shown for tracing.



> 
> Anyway, do_fsync() doesn't catch all sync actions (although I suspect
> it catches most). We still have the mythical sync_file_range() that
> Andrew still wants a real program to use.

a normal sync() I don't need any help for.. it has no filename and I
already know who's calling it with what latency.

> 
> And then there are things like sync and umount that do syncs too. But
> I suspect you might not be interested in those.

I already know all I need about those.... again it's the fsync() that
is specific, and I need to know the specifics to help the user figure
out what is going on.
(and in case you worry that there's not going to be a user for this
tracer, I already wrote the latencytop side of the code for this one, 
so I know I can use the current format)


-- 
Arjan van de Ven 	Intel Open Source Technology Centre
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org

  reply	other threads:[~2008-11-06 15:01 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 [this message]
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
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=20081106070157.065b2dcc@infradead.org \
    --to=arjan@infradead.org \
    --cc=alan@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --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.