perf c2c report: Add 'cpucnt' sort key
tip-bot for Jiri Olsa
merge botCommit-ID: b6fe2bbc346ea6a838832d319e5fe7332fc75f3d Gitweb: http://git.kernel.org/tip/b6fe2bbc346ea6a838832d319e5fe7332fc75f3d Author: Jiri Olsa <[email protected]> AuthorDate: Thu, 23 Jun 2016 23:05:52 +0200 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Wed, 19 Oct 2016 13:18:31 -0300
perf c2c report: Add 'cpucnt' sort key
It is to be displayed in the single cacheline output:
cpucnt
It displays number of distinct cpus that hit cacheline.
Signed-off-by Jiri Olsa <[email protected]>
Cc Andi Kleen <[email protected]>
Cc David Ahern <[email protected]>
Cc Don Zickus <[email protected]>
Cc Joe Mario <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Peter Zijlstra <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/builtin-c2c.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)
tools/perf/builtin-c2c.c +23 -0
@@ -1015,6 +1015,20 @@ MEAN_ENTRY(mean_rmt_entry, rmt_hitm);MEAN_ENTRY (mean_lcl_entry, lcl_hitm);MEAN_ENTRY (mean_load_entry, load); +static int +cpucnt_entry (struct perf_hpp_fmt *fmt__maybe_unused ,struct perf_hpp *hpp, +struct hist_entry *he) +{ +struct c2c_hist_entry *c2c_he; +int width =c2c_width (fmt, hpp, he->hists); +char buf[10 ]; + + c2c_he = container_of(he, struct c2c_hist_entry, he); + +scnprintf (buf,10 ,"%d" ,bitmap_weight (c2c_he->cpuset, c2c.cpus_cnt)); +return scnprintf (hpp->buf, hpp->size,"%*s" , width, buf); +} +#define HEADER_LOW (__h) \ { \ .line[1] = { \
@@ -1341,6 +1355,14 @@ static struct c2c_dimension dim_mean_load = { .width = 8, }; +static struct c2c_dimension dim_cpucnt = { + .header =HEADER_BOTH ("cpu" ,"cnt" ), + .name ="cpucnt" , + .cmp = empty_cmp, + .entry = cpucnt_entry, + .width =8 , +}; +static struct c2c_dimension *dimensions[] = { &dim_dcacheline, &dim_offset,
@@ -1378,6 +1400,7 @@ static struct c2c_dimension *dimensions[] = { &dim_mean_rmt, &dim_mean_lcl, &dim_mean_load, + &dim_cpucnt, NULL, };