lkml.org 
[lkml]   [2015]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC][PATCH 10/10] writeback: Export enums used by tracepoint to user space
    From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>

    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.

    Cc: Dave Chinner <dchinner@redhat.com>
    Cc: Jens Axboe <jaxboe@fusionio.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    ---
    include/trace/events/writeback.h | 33 +++++++++++++++++++++++++--------
    1 file changed, 25 insertions(+), 8 deletions(-)

    diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h
    index 5a14ead59696..880dd7437172 100644
    --- a/include/trace/events/writeback.h
    +++ b/include/trace/events/writeback.h
    @@ -23,15 +23,32 @@
    {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 \
    - {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"}
    + EM( WB_REASON_BACKGROUND, "background") \
    + EM( WB_REASON_TRY_TO_FREE_PAGES, "try_to_free_pages") \
    + EM( WB_REASON_SYNC, "sync") \
    + EM( WB_REASON_PERIODIC, "periodic") \
    + EM( WB_REASON_LAPTOP_TIMER, "laptop_timer") \
    + EM( WB_REASON_FREE_MORE_MEM, "free_more_memory") \
    + EM( WB_REASON_FS_FREE_SPACE, "fs_free_space") \
    + 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;

    --
    2.1.4



    \
     
     \ /
      Last update: 2015-03-27 23:01    [W:2.145 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site