[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20091025230321.aa4f26a1.akpm@linux-foundation.org>
Date: Sun, 25 Oct 2009 23:03:21 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: Arjan van de Ven <arjan@...radead.org>
Cc: linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org,
Christoph Hellwig <hch@...radead.org>,
Al Viro <viro@...IV.linux.org.uk>, mingo@...e.hu,
Frederic Weisbecker <fweisbec@...il.com>,
auke-jan.h.kok@...el.com
Subject: Re: [PATCH] vfs: Add a trace point in the mark_inode_dirty function
On Sun, 25 Oct 2009 22:53:42 -0700 Arjan van de Ven <arjan@...radead.org> wrote:
> >From b894af8a33bec621dd1a4126603a3ca372bf0643 Mon Sep 17 00:00:00 2001
> From: Arjan van de Ven <arjan@...ux.intel.com>
> Date: Sun, 25 Oct 2009 15:37:04 -0700
> Subject: [PATCH] vfs: Add a trace point in the mark_inode_dirty function
>
> PowerTOP would like to be able to show who is keeping the disk
> busy by dirtying data. The most logical spot for this is in the vfs
> in the mark_inode_dirty() function. Doing this on the block level
> is not possible because by the time the IO hits the block layer the
> guilty party can no longer be found ("kjournald" and "pdflush" are not
> useful answers to "who caused this file to be dirty).
>
> The trace point follows the same logic/style as the block_dump code
> and pretty much dumps the same data, just not to dmesg (and thus to
> /var/log/messages) but via the trace events streams.
>
> ...
>
> @@ -1071,6 +1072,8 @@ void __mark_inode_dirty(struct inode *inode, int flags)
> if ((inode->i_state & flags) == flags)
> return;
>
> + trace_dirty_inode(inode, current);
> +
> if (unlikely(block_dump))
> block_dump___mark_inode_dirty(inode);
>
Doesn't powertop also want to know who is spinning up the disk via
buffered reads, direct-io reads and direct-io writes?
That's why the block_dump hook in submit_bio() is there.
--
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