diff options
Diffstat (limited to 'include/trace/events/writeback.h')
-rw-r--r-- | include/trace/events/writeback.h | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h index b99caa8b780c..8588a8918023 100644 --- a/include/trace/events/writeback.h +++ b/include/trace/events/writeback.h | |||
@@ -21,6 +21,16 @@ | |||
21 | {I_REFERENCED, "I_REFERENCED"} \ | 21 | {I_REFERENCED, "I_REFERENCED"} \ |
22 | ) | 22 | ) |
23 | 23 | ||
24 | #define WB_WORK_REASON \ | ||
25 | {WB_REASON_BACKGROUND, "background"}, \ | ||
26 | {WB_REASON_TRY_TO_FREE_PAGES, "try_to_free_pages"}, \ | ||
27 | {WB_REASON_SYNC, "sync"}, \ | ||
28 | {WB_REASON_PERIODIC, "periodic"}, \ | ||
29 | {WB_REASON_LAPTOP_TIMER, "laptop_timer"}, \ | ||
30 | {WB_REASON_FREE_MORE_MEM, "free_more_memory"}, \ | ||
31 | {WB_REASON_FS_FREE_SPACE, "fs_free_space"}, \ | ||
32 | {WB_REASON_FORKER_THREAD, "forker_thread"} | ||
33 | |||
24 | struct wb_writeback_work; | 34 | struct wb_writeback_work; |
25 | 35 | ||
26 | DECLARE_EVENT_CLASS(writeback_work_class, | 36 | DECLARE_EVENT_CLASS(writeback_work_class, |
@@ -55,7 +65,7 @@ DECLARE_EVENT_CLASS(writeback_work_class, | |||
55 | __entry->for_kupdate, | 65 | __entry->for_kupdate, |
56 | __entry->range_cyclic, | 66 | __entry->range_cyclic, |
57 | __entry->for_background, | 67 | __entry->for_background, |
58 | wb_reason_name[__entry->reason] | 68 | __print_symbolic(__entry->reason, WB_WORK_REASON) |
59 | ) | 69 | ) |
60 | ); | 70 | ); |
61 | #define DEFINE_WRITEBACK_WORK_EVENT(name) \ | 71 | #define DEFINE_WRITEBACK_WORK_EVENT(name) \ |
@@ -184,7 +194,8 @@ TRACE_EVENT(writeback_queue_io, | |||
184 | __entry->older, /* older_than_this in jiffies */ | 194 | __entry->older, /* older_than_this in jiffies */ |
185 | __entry->age, /* older_than_this in relative milliseconds */ | 195 | __entry->age, /* older_than_this in relative milliseconds */ |
186 | __entry->moved, | 196 | __entry->moved, |
187 | wb_reason_name[__entry->reason]) | 197 | __print_symbolic(__entry->reason, WB_WORK_REASON) |
198 | ) | ||
188 | ); | 199 | ); |
189 | 200 | ||
190 | TRACE_EVENT(global_dirty_state, | 201 | TRACE_EVENT(global_dirty_state, |
@@ -289,12 +300,13 @@ TRACE_EVENT(balance_dirty_pages, | |||
289 | unsigned long dirty_ratelimit, | 300 | unsigned long dirty_ratelimit, |
290 | unsigned long task_ratelimit, | 301 | unsigned long task_ratelimit, |
291 | unsigned long dirtied, | 302 | unsigned long dirtied, |
303 | unsigned long period, | ||
292 | long pause, | 304 | long pause, |
293 | unsigned long start_time), | 305 | unsigned long start_time), |
294 | 306 | ||
295 | TP_ARGS(bdi, thresh, bg_thresh, dirty, bdi_thresh, bdi_dirty, | 307 | TP_ARGS(bdi, thresh, bg_thresh, dirty, bdi_thresh, bdi_dirty, |
296 | dirty_ratelimit, task_ratelimit, | 308 | dirty_ratelimit, task_ratelimit, |
297 | dirtied, pause, start_time), | 309 | dirtied, period, pause, start_time), |
298 | 310 | ||
299 | TP_STRUCT__entry( | 311 | TP_STRUCT__entry( |
300 | __array( char, bdi, 32) | 312 | __array( char, bdi, 32) |
@@ -309,6 +321,8 @@ TRACE_EVENT(balance_dirty_pages, | |||
309 | __field(unsigned int, dirtied_pause) | 321 | __field(unsigned int, dirtied_pause) |
310 | __field(unsigned long, paused) | 322 | __field(unsigned long, paused) |
311 | __field( long, pause) | 323 | __field( long, pause) |
324 | __field(unsigned long, period) | ||
325 | __field( long, think) | ||
312 | ), | 326 | ), |
313 | 327 | ||
314 | TP_fast_assign( | 328 | TP_fast_assign( |
@@ -325,6 +339,9 @@ TRACE_EVENT(balance_dirty_pages, | |||
325 | __entry->task_ratelimit = KBps(task_ratelimit); | 339 | __entry->task_ratelimit = KBps(task_ratelimit); |
326 | __entry->dirtied = dirtied; | 340 | __entry->dirtied = dirtied; |
327 | __entry->dirtied_pause = current->nr_dirtied_pause; | 341 | __entry->dirtied_pause = current->nr_dirtied_pause; |
342 | __entry->think = current->dirty_paused_when == 0 ? 0 : | ||
343 | (long)(jiffies - current->dirty_paused_when) * 1000/HZ; | ||
344 | __entry->period = period * 1000 / HZ; | ||
328 | __entry->pause = pause * 1000 / HZ; | 345 | __entry->pause = pause * 1000 / HZ; |
329 | __entry->paused = (jiffies - start_time) * 1000 / HZ; | 346 | __entry->paused = (jiffies - start_time) * 1000 / HZ; |
330 | ), | 347 | ), |
@@ -335,7 +352,7 @@ TRACE_EVENT(balance_dirty_pages, | |||
335 | "bdi_setpoint=%lu bdi_dirty=%lu " | 352 | "bdi_setpoint=%lu bdi_dirty=%lu " |
336 | "dirty_ratelimit=%lu task_ratelimit=%lu " | 353 | "dirty_ratelimit=%lu task_ratelimit=%lu " |
337 | "dirtied=%u dirtied_pause=%u " | 354 | "dirtied=%u dirtied_pause=%u " |
338 | "paused=%lu pause=%ld", | 355 | "paused=%lu pause=%ld period=%lu think=%ld", |
339 | __entry->bdi, | 356 | __entry->bdi, |
340 | __entry->limit, | 357 | __entry->limit, |
341 | __entry->setpoint, | 358 | __entry->setpoint, |
@@ -347,7 +364,9 @@ TRACE_EVENT(balance_dirty_pages, | |||
347 | __entry->dirtied, | 364 | __entry->dirtied, |
348 | __entry->dirtied_pause, | 365 | __entry->dirtied_pause, |
349 | __entry->paused, /* ms */ | 366 | __entry->paused, /* ms */ |
350 | __entry->pause /* ms */ | 367 | __entry->pause, /* ms */ |
368 | __entry->period, /* ms */ | ||
369 | __entry->think /* ms */ | ||
351 | ) | 370 | ) |
352 | ); | 371 | ); |
353 | 372 | ||