Commit 682352e5 authored by Leo Yan's avatar Leo Yan Committed by Arnaldo Carvalho de Melo

perf c2c: Add mean dimensions for peer operations

This patch adds two dimensions for the mean value of peer operations.
Reviewed-by: default avatarAli Saidi <alisaidi@amazon.com>
Signed-off-by: default avatarLeo Yan <leo.yan@linaro.org>
Tested-by: default avatarAli Saidi <alisaidi@amazon.com>
Acked-by: default avatarIan 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-9-leo.yan@linaro.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 9082282f
...@@ -55,6 +55,8 @@ struct c2c_hists { ...@@ -55,6 +55,8 @@ struct c2c_hists {
struct compute_stats { struct compute_stats {
struct stats lcl_hitm; struct stats lcl_hitm;
struct stats rmt_hitm; struct stats rmt_hitm;
struct stats lcl_peer;
struct stats rmt_peer;
struct stats load; struct stats load;
}; };
...@@ -154,6 +156,8 @@ static void *c2c_he_zalloc(size_t size) ...@@ -154,6 +156,8 @@ static void *c2c_he_zalloc(size_t size)
init_stats(&c2c_he->cstats.lcl_hitm); init_stats(&c2c_he->cstats.lcl_hitm);
init_stats(&c2c_he->cstats.rmt_hitm); init_stats(&c2c_he->cstats.rmt_hitm);
init_stats(&c2c_he->cstats.lcl_peer);
init_stats(&c2c_he->cstats.rmt_peer);
init_stats(&c2c_he->cstats.load); init_stats(&c2c_he->cstats.load);
return &c2c_he->he; return &c2c_he->he;
...@@ -253,6 +257,10 @@ static void compute_stats(struct c2c_hist_entry *c2c_he, ...@@ -253,6 +257,10 @@ static void compute_stats(struct c2c_hist_entry *c2c_he,
update_stats(&cstats->rmt_hitm, weight); update_stats(&cstats->rmt_hitm, weight);
else if (stats->lcl_hitm) else if (stats->lcl_hitm)
update_stats(&cstats->lcl_hitm, weight); update_stats(&cstats->lcl_hitm, weight);
else if (stats->rmt_peer)
update_stats(&cstats->rmt_peer, weight);
else if (stats->lcl_peer)
update_stats(&cstats->lcl_peer, weight);
else if (stats->load) else if (stats->load)
update_stats(&cstats->load, weight); update_stats(&cstats->load, weight);
} }
...@@ -1280,6 +1288,8 @@ __func(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp, struct hist_entry *he) \ ...@@ -1280,6 +1288,8 @@ __func(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp, struct hist_entry *he) \
MEAN_ENTRY(mean_rmt_entry, rmt_hitm); MEAN_ENTRY(mean_rmt_entry, rmt_hitm);
MEAN_ENTRY(mean_lcl_entry, lcl_hitm); MEAN_ENTRY(mean_lcl_entry, lcl_hitm);
MEAN_ENTRY(mean_load_entry, load); MEAN_ENTRY(mean_load_entry, load);
MEAN_ENTRY(mean_rmt_peer_entry, rmt_peer);
MEAN_ENTRY(mean_lcl_peer_entry, lcl_peer);
static int static int
cpucnt_entry(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp, cpucnt_entry(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp,
...@@ -1750,6 +1760,22 @@ static struct c2c_dimension dim_mean_load = { ...@@ -1750,6 +1760,22 @@ static struct c2c_dimension dim_mean_load = {
.width = 8, .width = 8,
}; };
static struct c2c_dimension dim_mean_rmt_peer = {
.header = HEADER_SPAN("---------- cycles ----------", "rmt peer", 2),
.name = "mean_rmt_peer",
.cmp = empty_cmp,
.entry = mean_rmt_peer_entry,
.width = 8,
};
static struct c2c_dimension dim_mean_lcl_peer = {
.header = HEADER_SPAN_LOW("lcl peer"),
.name = "mean_lcl_peer",
.cmp = empty_cmp,
.entry = mean_lcl_peer_entry,
.width = 8,
};
static struct c2c_dimension dim_cpucnt = { static struct c2c_dimension dim_cpucnt = {
.header = HEADER_BOTH("cpu", "cnt"), .header = HEADER_BOTH("cpu", "cnt"),
.name = "cpucnt", .name = "cpucnt",
...@@ -1835,6 +1861,8 @@ static struct c2c_dimension *dimensions[] = { ...@@ -1835,6 +1861,8 @@ static struct c2c_dimension *dimensions[] = {
&dim_node, &dim_node,
&dim_mean_rmt, &dim_mean_rmt,
&dim_mean_lcl, &dim_mean_lcl,
&dim_mean_rmt_peer,
&dim_mean_lcl_peer,
&dim_mean_load, &dim_mean_load,
&dim_cpucnt, &dim_cpucnt,
&dim_srcline, &dim_srcline,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment