perf c2c: Display "Total Stores" as a standalone metrics
authorLeo Yan <leo.yan@linaro.org>
Wed, 14 Oct 2020 05:09:15 +0000 (06:09 +0100)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 15 Oct 2020 12:34:36 +0000 (09:34 -0300)
The total stores is displayed under the metrics "Store Reference", to
output the same format with total records and all loads, extract the
total stores number as a standalone metrics "Total Stores".

After this patch, the tool shows the summary numbers ("Total records",
"Total loads", "Total Stores") in the unified form.

Before:

  #        ----------- Cacheline ----------      Tot  ----- LLC Load Hitm -----    Total    Total  ---- Store Reference ----  --- Load Dram ----      LLC  ----- Core Load Hit -----  -- LLC Load Hit --
  # Index             Address  Node  PA cnt     Hitm    Total      Lcl      Rmt  records    Loads    Total    L1Hit   L1Miss       Lcl       Rmt  Ld Miss       FB       L1       L2       Llc       Rmt
  # .....  ..................  ....  ......  .......  .......  .......  .......  .......  .......  .......  .......  .......  ........  ........  .......  .......  .......  .......  ........  ........
  #
        0      0x55f07d580100     0    1499   85.89%      481      481        0     7243     3879     3364     2599      765         0         0        0      548     2615       66       169         0
        1      0x55f07d580080     0       1   13.93%       78       78        0      664      664        0        0        0         0         0        0      187      361       27        11         0
        2      0x55f07d5800c0     0       1    0.18%        1        1        0      405      405        0        0        0         0         0        0      131        0       10       263         0

After:

  #        ----------- Cacheline ----------      Tot  ----- LLC Load Hitm -----    Total    Total    Total  ---- Stores ----  --- Load Dram ----      LLC  ----- Core Load Hit -----  -- LLC Load Hit --
  # Index             Address  Node  PA cnt     Hitm    Total      Lcl      Rmt  records    Loads   Stores    L1Hit   L1Miss       Lcl       Rmt  Ld Miss       FB       L1       L2       Llc       Rmt
  # .....  ..................  ....  ......  .......  .......  .......  .......  .......  .......  .......  .......  .......  ........  ........  .......  .......  .......  .......  ........  ........
  #
        0      0x55f07d580100     0    1499   85.89%      481      481        0     7243     3879     3364     2599      765         0         0        0      548     2615       66       169         0
        1      0x55f07d580080     0       1   13.93%       78       78        0      664      664        0        0        0         0         0        0      187      361       27        11         0
        2      0x55f07d5800c0     0       1    0.18%        1        1        0      405      405        0        0        0         0         0        0      131        0       10       263         0

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-3-leo.yan@linaro.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-c2c.c

index b5d99dd..51250f3 100644 (file)
@@ -1367,16 +1367,16 @@ static struct c2c_dimension dim_cl_lcl_hitm = {
        .width          = 7,
 };
 
-static struct c2c_dimension dim_stores = {
-       .header         = HEADER_SPAN("---- Store Reference ----", "Total", 2),
-       .name           = "stores",
+static struct c2c_dimension dim_tot_stores = {
+       .header         = HEADER_BOTH("Total", "Stores"),
+       .name           = "tot_stores",
        .cmp            = store_cmp,
        .entry          = store_entry,
        .width          = 7,
 };
 
 static struct c2c_dimension dim_stores_l1hit = {
-       .header         = HEADER_SPAN_LOW("L1Hit"),
+       .header         = HEADER_SPAN("---- Stores ----", "L1Hit", 1),
        .name           = "stores_l1hit",
        .cmp            = st_l1hit_cmp,
        .entry          = st_l1hit_entry,
@@ -1648,7 +1648,7 @@ static struct c2c_dimension *dimensions[] = {
        &dim_rmt_hitm,
        &dim_cl_lcl_hitm,
        &dim_cl_rmt_hitm,
-       &dim_stores,
+       &dim_tot_stores,
        &dim_stores_l1hit,
        &dim_stores_l1miss,
        &dim_cl_stores_l1hit,
@@ -2850,7 +2850,8 @@ static int perf_c2c__report(int argc, const char **argv)
                        "tot_hitm,lcl_hitm,rmt_hitm,"
                        "tot_recs,"
                        "tot_loads,"
-                       "stores,stores_l1hit,stores_l1miss,"
+                       "tot_stores,"
+                       "stores_l1hit,stores_l1miss,"
                        "dram_lcl,dram_rmt,"
                        "ld_llcmiss,"
                        "ld_fbhit,ld_l1hit,ld_l2hit,"