perf c2c: Correct LLC load hit metrics
authorLeo Yan <leo.yan@linaro.org>
Wed, 14 Oct 2020 05:09:20 +0000 (06:09 +0100)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 15 Oct 2020 12:34:51 +0000 (09:34 -0300)
"rmt_hit" is accounted into two metrics: one is accounted into the
metrics "LLC Ld Miss" (see the function llc_miss() for calculation
"llcmiss"); and it's accounted into metrics "LLC Load Hit".  Thus,
for the literal meaning, it is contradictory that "rmt_hit" is
accounted for both "LLC Ld Miss" (LLC miss) and "LLC Load Hit"
(LLC hit).

Thus this is easily to introduce confusion: "LLC Load Hit" gives
impression that all items belong to it are LLC hit; in fact "rmt_hit"
is LLC miss and remote cache hit.

To give out clear semantics for metric "LLC Load Hit", "rmt_hit" is
moved out from it and changes "LLC Load Hit" to contain two items:

  LLC Load Hit = LLC's hit ("ld_llchit") + LLC's hitm ("lcl_hitm")

For output alignment, adjusts the header for "LLC Load Hit".

Signed-off-by: Leo Yan <leo.yan@linaro.org>
Tested-by: Joe Mario <jmario@redhat.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Link: https://lore.kernel.org/r/20201014050921.5591-8-leo.yan@linaro.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-c2c.c

index fd7bfe4..bfbcd63 100644 (file)
@@ -1432,7 +1432,7 @@ static struct c2c_dimension dim_ld_l2hit = {
 };
 
 static struct c2c_dimension dim_ld_llchit = {
-       .header         = HEADER_SPAN("-- LLC Load Hit --", "LclHit", 1),
+       .header         = HEADER_SPAN("- LLC Load Hit --", "LclHit", 1),
        .name           = "ld_lclhit",
        .cmp            = ld_llchit_cmp,
        .entry          = ld_llchit_entry,
@@ -2853,7 +2853,7 @@ static int perf_c2c__report(int argc, const char **argv)
                        "tot_stores,"
                        "stores_l1hit,stores_l1miss,"
                        "ld_fbhit,ld_l1hit,ld_l2hit,"
-                       "ld_lclhit,ld_rmthit,"
+                       "ld_lclhit,lcl_hitm,"
                        "ld_llcmiss,"
                        "dram_lcl,dram_rmt",
                        c2c.display == DISPLAY_TOT ? "tot_hitm" :