forked from Minki/linux
560ccbc4a5
Initially, every time we want to add new terms like chip, core thread etc, we need to create corrsponding fields in pmu_events and event struct. This patch adds an enum called 'aggr_mode_class' which store all these aggregation like perchip/percore. It also adds new field 'aggr_mode' to capture these terms. Now, if user wants to add any new term, they just need to add it in the enum defined. Signed-off-by: Kajol Jain <kjain@linux.ibm.com> Acked-by: Jiri Olsa <jolsa@redhat.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Ian Rogers <irogers@google.com> Cc: Jin Yao <yao.jin@linux.intel.com> Cc: John Garry <john.garry@huawei.com> Cc: Madhavan Srinivasan <maddy@linux.ibm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Clarke <pc@us.ibm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com> Link: http://lore.kernel.org/lkml/20200907064133.75090-4-kjain@linux.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef PMU_EVENTS_H
|
|
#define PMU_EVENTS_H
|
|
|
|
enum aggr_mode_class {
|
|
PerChip = 1,
|
|
PerCore
|
|
};
|
|
|
|
/*
|
|
* Describe each PMU event. Each CPU has a table of PMU events.
|
|
*/
|
|
struct pmu_event {
|
|
const char *name;
|
|
const char *event;
|
|
const char *desc;
|
|
const char *topic;
|
|
const char *long_desc;
|
|
const char *pmu;
|
|
const char *unit;
|
|
const char *perpkg;
|
|
const char *aggr_mode;
|
|
const char *metric_expr;
|
|
const char *metric_name;
|
|
const char *metric_group;
|
|
const char *deprecated;
|
|
const char *metric_constraint;
|
|
};
|
|
|
|
/*
|
|
*
|
|
* Map a CPU to its table of PMU events. The CPU is identified by the
|
|
* cpuid field, which is an arch-specific identifier for the CPU.
|
|
* The identifier specified in tools/perf/pmu-events/arch/xxx/mapfile
|
|
* must match the get_cpuid_str() in tools/perf/arch/xxx/util/header.c)
|
|
*
|
|
* The cpuid can contain any character other than the comma.
|
|
*/
|
|
struct pmu_events_map {
|
|
const char *cpuid;
|
|
const char *version;
|
|
const char *type; /* core, uncore etc */
|
|
struct pmu_event *table;
|
|
};
|
|
|
|
/*
|
|
* Global table mapping each known CPU for the architecture to its
|
|
* table of PMU events.
|
|
*/
|
|
extern struct pmu_events_map pmu_events_map[];
|
|
|
|
#endif
|