lkml.org 
[lkml]   [2011]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5/5] tracing, function_graph: Add context-info support for function_graph tracer
    Date
    The function_graph tracer does not follow global context-info option.
    Adding TRACE_ITER_CONTEXT_INFO trace_flags check to enable it.

    Signed-off-by: Jiri Olsa <jolsa@redhat.com>
    ---
    kernel/trace/trace_functions_graph.c | 53 ++++++++++++++++++++--------------
    1 files changed, 31 insertions(+), 22 deletions(-)

    diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
    index 1da5b97..e8d6bb5 100644
    --- a/kernel/trace/trace_functions_graph.c
    +++ b/kernel/trace/trace_functions_graph.c
    @@ -613,28 +613,30 @@ print_graph_irq(struct trace_iterator *iter, unsigned long addr,
    addr >= (unsigned long)__irqentry_text_end)
    return TRACE_TYPE_UNHANDLED;

    - /* Absolute time */
    - if (flags & TRACE_GRAPH_PRINT_ABS_TIME) {
    - ret = print_graph_abs_time(iter->ts, s);
    - if (!ret)
    - return TRACE_TYPE_PARTIAL_LINE;
    - }
    + if (trace_flags & TRACE_ITER_CONTEXT_INFO) {
    + /* Absolute time */
    + if (flags & TRACE_GRAPH_PRINT_ABS_TIME) {
    + ret = print_graph_abs_time(iter->ts, s);
    + if (!ret)
    + return TRACE_TYPE_PARTIAL_LINE;
    + }

    - /* Cpu */
    - if (flags & TRACE_GRAPH_PRINT_CPU) {
    - ret = print_graph_cpu(s, cpu);
    - if (ret == TRACE_TYPE_PARTIAL_LINE)
    - return TRACE_TYPE_PARTIAL_LINE;
    - }
    + /* Cpu */
    + if (flags & TRACE_GRAPH_PRINT_CPU) {
    + ret = print_graph_cpu(s, cpu);
    + if (ret == TRACE_TYPE_PARTIAL_LINE)
    + return TRACE_TYPE_PARTIAL_LINE;
    + }

    - /* Proc */
    - if (flags & TRACE_GRAPH_PRINT_PROC) {
    - ret = print_graph_proc(s, pid);
    - if (ret == TRACE_TYPE_PARTIAL_LINE)
    - return TRACE_TYPE_PARTIAL_LINE;
    - ret = trace_seq_printf(s, " | ");
    - if (!ret)
    - return TRACE_TYPE_PARTIAL_LINE;
    + /* Proc */
    + if (flags & TRACE_GRAPH_PRINT_PROC) {
    + ret = print_graph_proc(s, pid);
    + if (ret == TRACE_TYPE_PARTIAL_LINE)
    + return TRACE_TYPE_PARTIAL_LINE;
    + ret = trace_seq_printf(s, " | ");
    + if (!ret)
    + return TRACE_TYPE_PARTIAL_LINE;
    + }
    }

    /* No overhead */
    @@ -710,8 +712,9 @@ print_graph_duration(unsigned long long duration, struct trace_seq *s,
    {
    int ret = -1;

    - if (!(flags & TRACE_GRAPH_PRINT_DURATION))
    - return TRACE_TYPE_HANDLED;
    + if (!(flags & TRACE_GRAPH_PRINT_DURATION) ||
    + !(trace_flags & TRACE_ITER_CONTEXT_INFO))
    + return TRACE_TYPE_HANDLED;

    /* No real adata, just filling the column with spaces */
    switch (duration) {
    @@ -879,6 +882,9 @@ print_graph_prologue(struct trace_iterator *iter, struct trace_seq *s,
    return TRACE_TYPE_PARTIAL_LINE;
    }

    + if (!(trace_flags & TRACE_ITER_CONTEXT_INFO))
    + return 0;
    +
    /* Absolute time */
    if (flags & TRACE_GRAPH_PRINT_ABS_TIME) {
    ret = print_graph_abs_time(iter->ts, s);
    @@ -1346,6 +1352,9 @@ void print_graph_headers_flags(struct seq_file *s, u32 flags)
    {
    struct trace_iterator *iter = s->private;

    + if (!(trace_flags & TRACE_ITER_CONTEXT_INFO))
    + return;
    +
    if (trace_flags & TRACE_ITER_LATENCY_FMT) {
    /* print nothing if the buffers are empty */
    if (trace_empty(iter))
    --
    1.7.1


    \
     
     \ /
      Last update: 2011-06-03 16:23    [W:0.024 / U:29.872 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site