mirror of https://gitee.com/openkylin/linux.git
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: Wu Fengguang <fengguang.wu@intel.com>
This commit is contained in:
parent
384703b8e6
commit
b3bba872dd
|
@ -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 @@
|
||||||
{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,
|
||||||
__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,
|
||||||
__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,
|
||||||
|
|
Loading…
Reference in New Issue