lkml.org 
[lkml]   [2013]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 3/3] perf diff: color the Weighted Diff column
    Date
    In

    $ perf diff -c wdiff:M,N

    color the numbers in the Weighted Diff column either green or red,
    depending on whether the number is positive or negative.

    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
    ---
    tools/perf/builtin-diff.c | 22 ++++++++++++++++++++++
    1 file changed, 22 insertions(+)

    diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c
    index 25dac6c..d6ae643 100644
    --- a/tools/perf/builtin-diff.c
    +++ b/tools/perf/builtin-diff.c
    @@ -777,6 +777,7 @@ static int __hpp__color_compare(struct perf_hpp_fmt *fmt,
    container_of(fmt, struct diff_hpp_fmt, fmt);
    struct hist_entry *pair = get_pair_fmt(he, dfmt);
    double diff;
    + s64 wdiff;
    char pfmt[20] = " ";

    if (!pair)
    @@ -805,6 +806,18 @@ static int __hpp__color_compare(struct perf_hpp_fmt *fmt,
    scnprintf(pfmt, 20, "%%%d.6f", dfmt->header_width);
    return percent_color_snprintf(hpp->buf, hpp->size,
    pfmt, diff);
    + case COMPUTE_WEIGHTED_DIFF:
    + if (he->dummy)
    + goto dummy_print;
    + if (pair->diff.computed)
    + wdiff = pair->diff.wdiff;
    + else
    + wdiff = compute_wdiff(he, pair);
    +
    + scnprintf(pfmt, 20, "%%14ld", dfmt->header_width);
    + return color_snprintf(hpp->buf, hpp->size,
    + wdiff > 0 ? PERF_COLOR_GREEN : PERF_COLOR_RED,
    + pfmt, wdiff);
    default:
    BUG_ON(1);
    }
    @@ -825,6 +838,12 @@ static int hpp__color_ratio(struct perf_hpp_fmt *fmt,
    return __hpp__color_compare(fmt, hpp, he, COMPUTE_RATIO);
    }

    +static int hpp__color_wdiff(struct perf_hpp_fmt *fmt,
    + struct perf_hpp *hpp, struct hist_entry *he)
    +{
    + return __hpp__color_compare(fmt, hpp, he, COMPUTE_WEIGHTED_DIFF);
    +}
    +
    static void
    hpp__entry_unpair(struct hist_entry *he, int idx, char *buf, size_t size)
    {
    @@ -1006,6 +1025,9 @@ static void data__hpp_register(struct data__file *d, int idx)
    case PERF_HPP_DIFF__RATIO:
    fmt->color = hpp__color_ratio;
    break;
    + case PERF_HPP_DIFF__WEIGHTED_DIFF:
    + fmt->color = hpp__color_wdiff;
    + break;
    default:
    break;
    }
    --
    1.8.5.rc0.5.g70ebc73.dirty


    \
     
     \ /
      Last update: 2013-11-29 15:01    [W:2.487 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site