When sort on the respective metrics (lcl_hitm, rmt_hitm, tot_hitm), macro FILTER_HITM is to filter out the cache line entries if its overhead is less than 1%.
This patch is to refactor macro FILTER_HITM. It uses more gernal name FILTER_DISPLAY to replace the old name; and refines its parameter, rather than passing field name for the data structure, it changes to pass the cache line's statistic value and the sum value, this is more flexsible, e.g. if consider to extend for sorting on all load hits which combines multiple fields from structure c2c_stats. Signed-off-by: Leo Yan <leo....@linaro.org> --- tools/perf/builtin-c2c.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c index 5cd30c083d6c..f11c3c84bb2b 100644 --- a/tools/perf/builtin-c2c.c +++ b/tools/perf/builtin-c2c.c @@ -2151,24 +2151,27 @@ static bool he__display(struct hist_entry *he, struct c2c_stats *stats) c2c_he = container_of(he, struct c2c_hist_entry, he); -#define FILTER_HITM(__h) \ - if (stats->__h) { \ - ld_dist = ((double)c2c_he->stats.__h / stats->__h); \ +#define FILTER_DISPLAY(val, sum) \ +{ \ + if ((sum)) { \ + ld_dist = ((double)(val) / (sum)); \ if (ld_dist < DISPLAY_LINE_LIMIT) \ he->filtered = HIST_FILTER__C2C; \ } else { \ he->filtered = HIST_FILTER__C2C; \ - } + } \ +} switch (c2c.display) { case DISPLAY_LCL: - FILTER_HITM(lcl_hitm); + FILTER_DISPLAY(c2c_he->stats.lcl_hitm, stats->lcl_hitm); break; case DISPLAY_RMT: - FILTER_HITM(rmt_hitm); + FILTER_DISPLAY(c2c_he->stats.rmt_hitm, stats->rmt_hitm); break; case DISPLAY_TOT: - FILTER_HITM(tot_hitm); + FILTER_DISPLAY(c2c_he->stats.tot_hitm, stats->tot_hitm); + break; default: break; } -- 2.17.1