Commit b3bba872 authored by Wu Fengguang's avatar Wu Fengguang

writeback: show writeback reason with __print_symbolic

This makes the binary trace understandable by trace-cmd.

CC: Dave Chinner <david@fromorbit.com>
CC: Curt Wohlgemuth <curtw@google.com>
CC: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
parent 384703b8
...@@ -47,17 +47,6 @@ struct wb_writeback_work { ...@@ -47,17 +47,6 @@ struct wb_writeback_work {
struct completion *done; /* set if the caller waits */ struct completion *done; /* set if the caller waits */
}; };
const char *wb_reason_name[] = {
[WB_REASON_BACKGROUND] = "background",
[WB_REASON_TRY_TO_FREE_PAGES] = "try_to_free_pages",
[WB_REASON_SYNC] = "sync",
[WB_REASON_PERIODIC] = "periodic",
[WB_REASON_LAPTOP_TIMER] = "laptop_timer",
[WB_REASON_FREE_MORE_MEM] = "free_more_memory",
[WB_REASON_FS_FREE_SPACE] = "fs_free_space",
[WB_REASON_FORKER_THREAD] = "forker_thread"
};
/* /*
* Include the creation of the trace points after defining the * Include the creation of the trace points after defining the
* wb_writeback_work structure so that the definition remains local to this * wb_writeback_work structure so that the definition remains local to this
......
...@@ -21,6 +21,16 @@ ...@@ -21,6 +21,16 @@
{I_REFERENCED, "I_REFERENCED"} \ {I_REFERENCED, "I_REFERENCED"} \
) )
#define WB_WORK_REASON \
{WB_REASON_BACKGROUND, "background"}, \
{WB_REASON_TRY_TO_FREE_PAGES, "try_to_free_pages"}, \
{WB_REASON_SYNC, "sync"}, \
{WB_REASON_PERIODIC, "periodic"}, \
{WB_REASON_LAPTOP_TIMER, "laptop_timer"}, \
{WB_REASON_FREE_MORE_MEM, "free_more_memory"}, \
{WB_REASON_FS_FREE_SPACE, "fs_free_space"}, \
{WB_REASON_FORKER_THREAD, "forker_thread"}
struct wb_writeback_work; struct wb_writeback_work;
DECLARE_EVENT_CLASS(writeback_work_class, DECLARE_EVENT_CLASS(writeback_work_class,
...@@ -55,7 +65,7 @@ DECLARE_EVENT_CLASS(writeback_work_class, ...@@ -55,7 +65,7 @@ DECLARE_EVENT_CLASS(writeback_work_class,
__entry->for_kupdate, __entry->for_kupdate,
__entry->range_cyclic, __entry->range_cyclic,
__entry->for_background, __entry->for_background,
wb_reason_name[__entry->reason] __print_symbolic(__entry->reason, WB_WORK_REASON)
) )
); );
#define DEFINE_WRITEBACK_WORK_EVENT(name) \ #define DEFINE_WRITEBACK_WORK_EVENT(name) \
...@@ -184,7 +194,8 @@ TRACE_EVENT(writeback_queue_io, ...@@ -184,7 +194,8 @@ TRACE_EVENT(writeback_queue_io,
__entry->older, /* older_than_this in jiffies */ __entry->older, /* older_than_this in jiffies */
__entry->age, /* older_than_this in relative milliseconds */ __entry->age, /* older_than_this in relative milliseconds */
__entry->moved, __entry->moved,
wb_reason_name[__entry->reason]) __print_symbolic(__entry->reason, WB_WORK_REASON)
)
); );
TRACE_EVENT(global_dirty_state, TRACE_EVENT(global_dirty_state,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment