linux/tools/perf/pmu-events/pmu-events.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef PMU_EVENTS_H
   3#define PMU_EVENTS_H
   4
   5/*
   6 * Describe each PMU event. Each CPU has a table of PMU events.
   7 */
   8struct pmu_event {
   9        const char *name;
  10        const char *event;
  11        const char *desc;
  12        const char *topic;
  13        const char *long_desc;
  14        const char *pmu;
  15        const char *unit;
  16        const char *perpkg;
  17        const char *metric_expr;
  18        const char *metric_name;
  19        const char *metric_group;
  20        const char *deprecated;
  21        const char *metric_constraint;
  22};
  23
  24/*
  25 *
  26 * Map a CPU to its table of PMU events. The CPU is identified by the
  27 * cpuid field, which is an arch-specific identifier for the CPU.
  28 * The identifier specified in tools/perf/pmu-events/arch/xxx/mapfile
  29 * must match the get_cpuid_str() in tools/perf/arch/xxx/util/header.c)
  30 *
  31 * The  cpuid can contain any character other than the comma.
  32 */
  33struct pmu_events_map {
  34        const char *cpuid;
  35        const char *version;
  36        const char *type;               /* core, uncore etc */
  37        struct pmu_event *table;
  38};
  39
  40/*
  41 * Global table mapping each known CPU for the architecture to its
  42 * table of PMU events.
  43 */
  44extern struct pmu_events_map pmu_events_map[];
  45
  46#endif
  47