lkml.org 
[lkml]   [2020]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 4/6] tracing: add trace_export support for trace_marker
    Date
    Add the support to route trace_marker buffer to other destination
    via trace_export.

    Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org>
    Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    ---
    include/linux/trace.h | 1 +
    kernel/trace/trace.c | 9 +++++++++
    2 files changed, 10 insertions(+)

    diff --git a/include/linux/trace.h b/include/linux/trace.h
    index 5a01eeffb254..80b7df68bc0f 100644
    --- a/include/linux/trace.h
    +++ b/include/linux/trace.h
    @@ -6,6 +6,7 @@

    #define TRACE_EXPORT_FUNCTION BIT(0)
    #define TRACE_EXPORT_EVENT BIT(1)
    +#define TRACE_EXPORT_MARKER BIT(2)

    /*
    * The trace export - an export of Ftrace output. The trace_export
    diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
    index 2f9302a8b322..67993abda394 100644
    --- a/kernel/trace/trace.c
    +++ b/kernel/trace/trace.c
    @@ -271,6 +271,7 @@ static struct trace_export __rcu *ftrace_exports_list __read_mostly;

    static DEFINE_STATIC_KEY_FALSE(trace_function_exports_enabled);
    static DEFINE_STATIC_KEY_FALSE(trace_event_exports_enabled);
    +static DEFINE_STATIC_KEY_FALSE(trace_marker_exports_enabled);

    static inline void ftrace_exports_enable(struct trace_export *export)
    {
    @@ -279,6 +280,9 @@ static inline void ftrace_exports_enable(struct trace_export *export)

    if (export->flags & TRACE_EXPORT_EVENT)
    static_branch_inc(&trace_event_exports_enabled);
    +
    + if (export->flags & TRACE_EXPORT_MARKER)
    + static_branch_inc(&trace_marker_exports_enabled);
    }

    static inline void ftrace_exports_disable(struct trace_export *export)
    @@ -288,6 +292,9 @@ static inline void ftrace_exports_disable(struct trace_export *export)

    if (export->flags & TRACE_EXPORT_EVENT)
    static_branch_dec(&trace_event_exports_enabled);
    +
    + if (export->flags & TRACE_EXPORT_MARKER)
    + static_branch_dec(&trace_marker_exports_enabled);
    }

    static void ftrace_exports(struct ring_buffer_event *event, int flag)
    @@ -6648,6 +6655,8 @@ tracing_mark_write(struct file *filp, const char __user *ubuf,
    } else
    entry->buf[cnt] = '\0';

    + if (static_branch_unlikely(&trace_marker_exports_enabled))
    + ftrace_exports(event, TRACE_EXPORT_MARKER);
    __buffer_unlock_commit(buffer, event);

    if (tt)
    --
    The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
    a Linux Foundation Collaborative Project
    \
     
     \ /
      Last update: 2020-08-11 05:59    [W:3.660 / U:0.656 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site