* [PATCH,RFC] writeback: show raw dirtied_when in trace writeback_single_inode
@ 2011-08-29 2:06 Wu Fengguang
2011-08-29 7:42 ` Christoph Hellwig
0 siblings, 1 reply; 3+ messages in thread
From: Wu Fengguang @ 2011-08-29 2:06 UTC (permalink / raw)
To: linux-fsdevel; +Cc: Andrew Morton, Jan Kara, Dave Chinner, Christoph Hellwig
It looks more reasonable to save inode->dirtied_when in the raw trace
output, and to show both the absolute raw value for easy scripting and
the relative age in seconds for easy human reading.
The trace event was newly added in 3.1-rc1, so we still have the chance
to change the format.
btw, are there ways for user space to query the HZ value of the
running kernel? Which is required for converting the raw dirtied_when
ticks to clock time.
CC: Jan Kara <jack@suse.cz>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
---
include/trace/events/writeback.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
--- linux-next.orig/include/trace/events/writeback.h 2011-08-29 09:51:12.000000000 +0800
+++ linux-next/include/trace/events/writeback.h 2011-08-29 09:52:19.000000000 +0800
@@ -433,7 +433,7 @@ DECLARE_EVENT_CLASS(writeback_single_ino
__array(char, name, 32)
__field(unsigned long, ino)
__field(unsigned long, state)
- __field(unsigned long, age)
+ __field(unsigned long, dirtied_when)
__field(unsigned long, writeback_index)
__field(long, nr_to_write)
__field(unsigned long, wrote)
@@ -444,19 +444,19 @@ DECLARE_EVENT_CLASS(writeback_single_ino
dev_name(inode->i_mapping->backing_dev_info->dev), 32);
__entry->ino = inode->i_ino;
__entry->state = inode->i_state;
- __entry->age = (jiffies - inode->dirtied_when) *
- 1000 / HZ;
+ __entry->age = (jiffies - inode->dirtied_when) / HZ;
__entry->writeback_index = inode->i_mapping->writeback_index;
__entry->nr_to_write = nr_to_write;
__entry->wrote = nr_to_write - wbc->nr_to_write;
),
- TP_printk("bdi %s: ino=%lu state=%s age=%lu "
+ TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu "
"index=%lu to_write=%ld wrote=%lu",
__entry->name,
__entry->ino,
show_inode_state(__entry->state),
- __entry->age,
+ __entry->dirtied_when,
+ (jiffies - __entry->dirtied_when) / HZ,
__entry->writeback_index,
__entry->nr_to_write,
__entry->wrote
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH,RFC] writeback: show raw dirtied_when in trace writeback_single_inode
2011-08-29 2:06 [PATCH,RFC] writeback: show raw dirtied_when in trace writeback_single_inode Wu Fengguang
@ 2011-08-29 7:42 ` Christoph Hellwig
2011-08-29 9:23 ` [PATCH,v2] " Wu Fengguang
0 siblings, 1 reply; 3+ messages in thread
From: Christoph Hellwig @ 2011-08-29 7:42 UTC (permalink / raw)
To: Wu Fengguang
Cc: linux-fsdevel, Andrew Morton, Jan Kara, Dave Chinner,
Christoph Hellwig
On Mon, Aug 29, 2011 at 10:06:01AM +0800, Wu Fengguang wrote:
> It looks more reasonable to save inode->dirtied_when in the raw trace
> output, and to show both the absolute raw value for easy scripting and
> the relative age in seconds for easy human reading.
I also hacked this in to debug the the delayed i_size updates with xfs,
so:
ACK
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH,v2] writeback: show raw dirtied_when in trace writeback_single_inode
2011-08-29 7:42 ` Christoph Hellwig
@ 2011-08-29 9:23 ` Wu Fengguang
0 siblings, 0 replies; 3+ messages in thread
From: Wu Fengguang @ 2011-08-29 9:23 UTC (permalink / raw)
To: Christoph Hellwig
Cc: linux-fsdevel@vger.kernel.org, Andrew Morton, Jan Kara,
Dave Chinner
[since v1: added Christoph's ack and make it actually work]
Save inode->dirtied_when in the raw trace output for reliable scripting,
and to also show in formatted output the relative age in seconds for
easy human reading.
CC: Jan Kara <jack@suse.cz>
Acked-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
---
include/trace/events/writeback.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
--- linux-next.orig/include/trace/events/writeback.h 2011-08-29 09:51:12.000000000 +0800
+++ linux-next/include/trace/events/writeback.h 2011-08-29 17:14:16.000000000 +0800
@@ -433,7 +433,7 @@ DECLARE_EVENT_CLASS(writeback_single_ino
__array(char, name, 32)
__field(unsigned long, ino)
__field(unsigned long, state)
- __field(unsigned long, age)
+ __field(unsigned long, dirtied_when)
__field(unsigned long, writeback_index)
__field(long, nr_to_write)
__field(unsigned long, wrote)
@@ -444,19 +444,19 @@ DECLARE_EVENT_CLASS(writeback_single_ino
dev_name(inode->i_mapping->backing_dev_info->dev), 32);
__entry->ino = inode->i_ino;
__entry->state = inode->i_state;
- __entry->age = (jiffies - inode->dirtied_when) *
- 1000 / HZ;
+ __entry->dirtied_when = inode->dirtied_when;
__entry->writeback_index = inode->i_mapping->writeback_index;
__entry->nr_to_write = nr_to_write;
__entry->wrote = nr_to_write - wbc->nr_to_write;
),
- TP_printk("bdi %s: ino=%lu state=%s age=%lu "
+ TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu "
"index=%lu to_write=%ld wrote=%lu",
__entry->name,
__entry->ino,
show_inode_state(__entry->state),
- __entry->age,
+ __entry->dirtied_when,
+ (jiffies - __entry->dirtied_when) / HZ,
__entry->writeback_index,
__entry->nr_to_write,
__entry->wrote
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-08-29 9:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-29 2:06 [PATCH,RFC] writeback: show raw dirtied_when in trace writeback_single_inode Wu Fengguang
2011-08-29 7:42 ` Christoph Hellwig
2011-08-29 9:23 ` [PATCH,v2] " Wu Fengguang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).