[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1225981141.7803.4577.camel@twins>
Date: Thu, 06 Nov 2008 15:19:01 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Arjan van de Ven <arjan@...radead.org>
Cc: Steven Rostedt <rostedt@...dmis.org>, linux-kernel@...r.kernel.org,
mingo@...e.hu
Subject: Re: [PATCH] ftrace: add an fsync tracer
On Thu, 2008-11-06 at 06:06 -0800, Arjan van de Ven wrote:
> On Thu, 06 Nov 2008 13:55:38 +0100
> Peter Zijlstra <peterz@...radead.org> wrote:
>
> > On Wed, 2008-11-05 at 09:49 -0800, Arjan van de Ven wrote:
> > > From 63c1b869d94eb31a98015af09fb24e22151f2f00 Mon Sep 17 00:00:00
> > > 2001 From: Arjan van de Ven <arjan@...ux.intel.com>
> > > Date: Tue, 4 Nov 2008 21:08:11 -0800
> > > Subject: [PATCH] ftrace: add an fsync tracer
> > >
> > > fsync() (and its cousin, fdatasync()) are important chokepoints in
> > > the kernel as they imply very expensive operations, both in terms
> > > of filesystem operations (ext3 writes back its entire journal) as
> > > well as the block layer (fsync() implies sending a cache flushing
> > > barrier to the SATA/SCSI disk).
> > >
> > > This tracer makes a log of which application calls fsync() on which
> > > file, so that developers and others interested in finding these
> > > choke points can locate them and fix them in the apps that call
> > > this function.
> >
> > Sorry, but I have to object to such single purpose tracers..
> >
> > If we go this way we'll end up with a gazillion little tracers, non of
> > which are really useful.
>
> If we go this way we'll end up with a bunch of little tracers, all of
> which will be useful in their area, and people can also make "super
> tracers" out of the useful trace points.
I don't think:
# cat available_tracers | wc -l
500
will do much good for people.
Also, I don't think do_fsync() is the right place to catch what you're
trying to catch.
> >
> > Please work on getting something like a syscall tracer,
>
> 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.
> LatencyTOP already KNOWS that fsync is the problem. What it doesn't
> know is which file is being fsync()d.
>
> fsync is a problem when used incorrectly, not just for ext3 but also
> due to barriers. That's why it's important to be able to find who calls
> it when it impacts interactive performance.
Which suggests you want a tracer that gives more information about who
generates barriers, not specifically fsync().
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists