Messages in this thread Patch in this message | | | From | Leo Yan <> | Subject | [PATCH v1 3/8] perf c2c: Add dimensions for LLC load hit | Date | Thu, 15 Oct 2020 15:50:36 +0100 |
| |
Add dimensions for LLC load hit and its associated percentage calculation, which is to be displayed in the single cache line output.
Signed-off-by: Leo Yan <leo.yan@linaro.org> --- tools/perf/builtin-c2c.c | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+)
diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c index 5fb77fcd3c9c..3f6271a779c4 100644 --- a/tools/perf/builtin-c2c.c +++ b/tools/perf/builtin-c2c.c @@ -947,6 +947,7 @@ static double percent_ ## __f(struct c2c_hist_entry *c2c_he) \ PERCENT_FN(rmt_hitm) PERCENT_FN(lcl_hitm) +PERCENT_FN(ld_llchit) PERCENT_FN(st_l1hit) PERCENT_FN(st_l1miss) @@ -1012,6 +1013,37 @@ percent_lcl_hitm_cmp(struct perf_hpp_fmt *fmt __maybe_unused, return per_left - per_right; } +static int +percent_llc_hit_entry(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp, + struct hist_entry *he) +{ + int width = c2c_width(fmt, hpp, he->hists); + double per = PERCENT(he, ld_llchit); + char buf[10]; + + return scnprintf(hpp->buf, hpp->size, "%*s", width, PERC_STR(buf, per)); +} + +static int +percent_llc_hit_color(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp, + struct hist_entry *he) +{ + return percent_color(fmt, hpp, he, percent_ld_llchit); +} + +static int64_t +percent_llc_hit_cmp(struct perf_hpp_fmt *fmt __maybe_unused, + struct hist_entry *left, struct hist_entry *right) +{ + double per_left; + double per_right; + + per_left = PERCENT(left, ld_llchit); + per_right = PERCENT(right, ld_llchit); + + return per_left - per_right; +} + static int percent_stores_l1hit_entry(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp, struct hist_entry *he) @@ -1377,6 +1409,14 @@ static struct c2c_dimension dim_cl_rmt_hitm = { .width = 7, }; +static struct c2c_dimension dim_cl_llc_hit = { + .header = HEADER_SPAN("--- LLC Load ---", "LclHit", 1), + .name = "cl_llc_hit", + .cmp = ld_llchit_cmp, + .entry = ld_llchit_entry, + .width = 7, +}; + static struct c2c_dimension dim_cl_lcl_hitm = { .header = HEADER_SPAN_LOW("Lcl"), .name = "cl_lcl_hitm", @@ -1530,6 +1570,15 @@ static struct c2c_dimension dim_percent_lcl_hitm = { .width = 7, }; +static struct c2c_dimension dim_percent_llc_hit = { + .header = HEADER_SPAN("---- LLC LD ----", "LclHit", 1), + .name = "percent_llc_hit", + .cmp = percent_llc_hit_cmp, + .entry = percent_llc_hit_entry, + .color = percent_llc_hit_color, + .width = 7, +}; + static struct c2c_dimension dim_percent_stores_l1hit = { .header = HEADER_SPAN("-- Store Refs --", "L1 Hit", 1), .name = "percent_stores_l1hit", @@ -1673,6 +1722,7 @@ static struct c2c_dimension *dimensions[] = { &dim_tot_hitm, &dim_lcl_hitm, &dim_rmt_hitm, + &dim_cl_llc_hit, &dim_cl_lcl_hitm, &dim_cl_rmt_hitm, &dim_tot_stores, @@ -1692,6 +1742,7 @@ static struct c2c_dimension *dimensions[] = { &dim_percent_llchit, &dim_percent_rmt_hitm, &dim_percent_lcl_hitm, + &dim_percent_llc_hit, &dim_percent_stores_l1hit, &dim_percent_stores_l1miss, &dim_dram_lcl, -- 2.17.1
| |