Commit 91df6089 authored by Steven Rostedt (Red Hat)'s avatar Steven Rostedt (Red Hat) Committed by Steven Rostedt

writeback: Export enums used by tracepoint to user space

The enums used in tracepoints for __print_symbolic() do not have their
values shown in the tracepoint format files and this makes it difficult
for user space tools to convert the binary values to the strings they
are to represent.

Add TRACE_DEFINE_ENUM(x) macros to export the enum names to their values
to make the tracing output from user space tools more robust.

Link: http://lkml.kernel.org/r/20150403013802.220157513@goodmis.org

Cc: Dave Chinner <dchinner@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>
Reviewed-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Tested-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent 43d0f71f
...@@ -23,15 +23,32 @@ ...@@ -23,15 +23,32 @@
{I_REFERENCED, "I_REFERENCED"} \ {I_REFERENCED, "I_REFERENCED"} \
) )
/* enums need to be exported to user space */
#undef EM
#undef EMe
#define EM(a,b) TRACE_DEFINE_ENUM(a);
#define EMe(a,b) TRACE_DEFINE_ENUM(a);
#define WB_WORK_REASON \ #define WB_WORK_REASON \
{WB_REASON_BACKGROUND, "background"}, \ EM( WB_REASON_BACKGROUND, "background") \
{WB_REASON_TRY_TO_FREE_PAGES, "try_to_free_pages"}, \ EM( WB_REASON_TRY_TO_FREE_PAGES, "try_to_free_pages") \
{WB_REASON_SYNC, "sync"}, \ EM( WB_REASON_SYNC, "sync") \
{WB_REASON_PERIODIC, "periodic"}, \ EM( WB_REASON_PERIODIC, "periodic") \
{WB_REASON_LAPTOP_TIMER, "laptop_timer"}, \ EM( WB_REASON_LAPTOP_TIMER, "laptop_timer") \
{WB_REASON_FREE_MORE_MEM, "free_more_memory"}, \ EM( WB_REASON_FREE_MORE_MEM, "free_more_memory") \
{WB_REASON_FS_FREE_SPACE, "fs_free_space"}, \ EM( WB_REASON_FS_FREE_SPACE, "fs_free_space") \
{WB_REASON_FORKER_THREAD, "forker_thread"} EMe(WB_REASON_FORKER_THREAD, "forker_thread")
WB_WORK_REASON
/*
* Now redefine the EM() and EMe() macros to map the enums to the strings
* that will be printed in the output.
*/
#undef EM
#undef EMe
#define EM(a,b) { a, b },
#define EMe(a,b) { a, b }
struct wb_writeback_work; struct wb_writeback_work;
......
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