perf c2c: Add dimensions for peer load operations
authorLeo Yan <leo.yan@linaro.org>
Thu, 11 Aug 2022 06:24:42 +0000 (14:24 +0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 11 Aug 2022 22:12:18 +0000 (19:12 -0300)
This patch adds three dimensions for peer load operations of 'lcl_peer',
'rmt_peer' and 'tot_peer'.  These three dimensions will be used in the
shared data cache line table.

Reviewed-by: Ali Saidi <alisaidi@amazon.com>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Tested-by: Ali Saidi <alisaidi@amazon.com>
Acked-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: German Gomez <german.gomez@arm.com>
Cc: Gustavo A. R. Silva <gustavoars@kernel.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: John Garry <john.garry@huawei.com>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Like Xu <likexu@tencent.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Timothy Hayes <timothy.hayes@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Link: https://lore.kernel.org/r/20220811062451.435810-7-leo.yan@linaro.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-c2c.c

index 37bebeb..99c0c73 100644 (file)
@@ -650,6 +650,9 @@ __f ## _cmp(struct perf_hpp_fmt *fmt __maybe_unused,                        \
 
 STAT_FN(rmt_hitm)
 STAT_FN(lcl_hitm)
+STAT_FN(rmt_peer)
+STAT_FN(lcl_peer)
+STAT_FN(tot_peer)
 STAT_FN(store)
 STAT_FN(st_l1hit)
 STAT_FN(st_l1miss)
@@ -1360,6 +1363,30 @@ static struct c2c_dimension dim_rmt_hitm = {
        .width          = 7,
 };
 
+static struct c2c_dimension dim_tot_peer = {
+       .header         = HEADER_SPAN("------- Load Peer -------", "Total", 2),
+       .name           = "tot_peer",
+       .cmp            = tot_peer_cmp,
+       .entry          = tot_peer_entry,
+       .width          = 7,
+};
+
+static struct c2c_dimension dim_lcl_peer = {
+       .header         = HEADER_SPAN_LOW("Local"),
+       .name           = "lcl_peer",
+       .cmp            = lcl_peer_cmp,
+       .entry          = lcl_peer_entry,
+       .width          = 7,
+};
+
+static struct c2c_dimension dim_rmt_peer = {
+       .header         = HEADER_SPAN_LOW("Remote"),
+       .name           = "rmt_peer",
+       .cmp            = rmt_peer_cmp,
+       .entry          = rmt_peer_entry,
+       .width          = 7,
+};
+
 static struct c2c_dimension dim_cl_rmt_hitm = {
        .header         = HEADER_SPAN("----- HITM -----", "Rmt", 1),
        .name           = "cl_rmt_hitm",
@@ -1672,6 +1699,9 @@ static struct c2c_dimension *dimensions[] = {
        &dim_tot_hitm,
        &dim_lcl_hitm,
        &dim_rmt_hitm,
+       &dim_tot_peer,
+       &dim_lcl_peer,
+       &dim_rmt_peer,
        &dim_cl_lcl_hitm,
        &dim_cl_rmt_hitm,
        &dim_tot_stores,