Commit 4b87406a authored by K Prateek Nayak's avatar K Prateek Nayak Committed by Arnaldo Carvalho de Melo
Browse files

perf stat record: Save cache level information



When aggregating based on cache-topology, in addition to the aggregation
mode, knowing the cache level at which data is aggregated is necessary
to ensure consistency when running 'perf stat record' and later 'perf
stat report'.

Save the cache level for aggregation as a part of the env data that can
be later retrieved when running perf stat report.

Suggested-by: default avatarGautham Shenoy <gautham.shenoy@amd.com>
Signed-off-by: default avatarK Prateek Nayak <kprateek.nayak@amd.com>
Acked-by: default avatarIan Rogers <irogers@google.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ananth Narayan <ananth.narayan@amd.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ravi Bangoria <ravi.bangoria@amd.com>
Cc: Sandipan Das <sandipan.das@amd.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: Wen Pu <puwen@hygon.cn>
Link: https://lore.kernel.org/r/20230517172745.5833-4-kprateek.nayak@amd.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 995ed074
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -380,7 +380,8 @@ enum {
	PERF_STAT_CONFIG_TERM__AGGR_MODE	= 0,
	PERF_STAT_CONFIG_TERM__INTERVAL		= 1,
	PERF_STAT_CONFIG_TERM__SCALE		= 2,
	PERF_STAT_CONFIG_TERM__MAX		= 3,
	PERF_STAT_CONFIG_TERM__AGGR_LEVEL	= 3,
	PERF_STAT_CONFIG_TERM__MAX		= 4,
};

struct perf_record_stat_config_entry {
+4 −3
Original line number Diff line number Diff line
@@ -138,6 +138,7 @@ void perf_event__read_stat_config(struct perf_stat_config *config,
		CASE(AGGR_MODE,  aggr_mode)
		CASE(SCALE,      scale)
		CASE(INTERVAL,   interval)
		CASE(AGGR_LEVEL, aggr_level)
#undef CASE
		default:
			pr_warning("unknown stat config term %" PRI_lu64 "\n",
+1 −0
Original line number Diff line number Diff line
@@ -1375,6 +1375,7 @@ int perf_event__synthesize_stat_config(struct perf_tool *tool,
	ADD(AGGR_MODE,	config->aggr_mode)
	ADD(INTERVAL,	config->interval)
	ADD(SCALE,	config->scale)
	ADD(AGGR_LEVEL,	config->aggr_level)

	WARN_ONCE(i != PERF_STAT_CONFIG_TERM__MAX,
		  "stat config terms unbalanced\n");