diff options
author | Wu Fengguang <fengguang.wu@intel.com> | 2011-04-23 14:27:27 -0400 |
---|---|---|
committer | Wu Fengguang <fengguang.wu@intel.com> | 2011-06-07 20:25:23 -0400 |
commit | e84d0a4f8e39a73003a6ec9a11b07702745f4c1f (patch) | |
tree | 2319765d78502d13101ac50bafb0ba5577133092 /include/trace/events/writeback.h | |
parent | 251d6a471c831e22880b3c146bb4556ddfb1dc82 (diff) |
writeback: trace event writeback_queue_io
Note that it adds a little overheads to account the moved/enqueued
inodes from b_dirty to b_io. The "moved" accounting may be later used to
limit the number of inodes that can be moved in one shot, in order to
keep spinlock hold time under control.
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Diffstat (limited to 'include/trace/events/writeback.h')
-rw-r--r-- | include/trace/events/writeback.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h index 898277bc89b4..205d14919ef2 100644 --- a/include/trace/events/writeback.h +++ b/include/trace/events/writeback.h | |||
@@ -162,6 +162,31 @@ DEFINE_WBC_EVENT(wbc_balance_dirty_written); | |||
162 | DEFINE_WBC_EVENT(wbc_balance_dirty_wait); | 162 | DEFINE_WBC_EVENT(wbc_balance_dirty_wait); |
163 | DEFINE_WBC_EVENT(wbc_writepage); | 163 | DEFINE_WBC_EVENT(wbc_writepage); |
164 | 164 | ||
165 | TRACE_EVENT(writeback_queue_io, | ||
166 | TP_PROTO(struct bdi_writeback *wb, | ||
167 | unsigned long *older_than_this, | ||
168 | int moved), | ||
169 | TP_ARGS(wb, older_than_this, moved), | ||
170 | TP_STRUCT__entry( | ||
171 | __array(char, name, 32) | ||
172 | __field(unsigned long, older) | ||
173 | __field(long, age) | ||
174 | __field(int, moved) | ||
175 | ), | ||
176 | TP_fast_assign( | ||
177 | strncpy(__entry->name, dev_name(wb->bdi->dev), 32); | ||
178 | __entry->older = older_than_this ? *older_than_this : 0; | ||
179 | __entry->age = older_than_this ? | ||
180 | (jiffies - *older_than_this) * 1000 / HZ : -1; | ||
181 | __entry->moved = moved; | ||
182 | ), | ||
183 | TP_printk("bdi %s: older=%lu age=%ld enqueue=%d", | ||
184 | __entry->name, | ||
185 | __entry->older, /* older_than_this in jiffies */ | ||
186 | __entry->age, /* older_than_this in relative milliseconds */ | ||
187 | __entry->moved) | ||
188 | ); | ||
189 | |||
165 | DECLARE_EVENT_CLASS(writeback_congest_waited_template, | 190 | DECLARE_EVENT_CLASS(writeback_congest_waited_template, |
166 | 191 | ||
167 | TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), | 192 | TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), |