/* * The Armv7 and Armv8.8 or less CPU PMU supports up to 32 event counters. * The Armv8.9/9.4 CPU PMU supports up to 33 event counters.
*/ #ifdef CONFIG_ARM #define ARMPMU_MAX_HWEVENTS 32 #else #define ARMPMU_MAX_HWEVENTS 33 #endif /* * ARM PMU hw_event flags
*/ #define ARMPMU_EVT_64BIT 0x00001 /* Event uses a 64bit counter */ #define ARMPMU_EVT_47BIT 0x00002 /* Event uses a 47bit counter */ #define ARMPMU_EVT_63BIT 0x00004 /* Event uses a 63bit counter */
/* The events for a given PMU register set. */ struct pmu_hw_events { /* * The events that are active on the PMU for the given index.
*/ struct perf_event *events[ARMPMU_MAX_HWEVENTS];
/* * A 1 bit for an index indicates that the counter is being used for * an event. A 0 means that the counter can be used.
*/
DECLARE_BITMAP(used_mask, ARMPMU_MAX_HWEVENTS);
/* * When using percpu IRQs, we need a percpu dev_id. Place it here as we * already have to allocate this struct per cpu.
*/ struct arm_pmu *percpu_pmu;
int irq;
struct perf_branch_stack *branch_stack;
/* Active events requesting branch records */ unsignedint branch_users;
};
/* Internal functions only for core arm_pmu code */ struct arm_pmu *armpmu_alloc(void); void armpmu_free(struct arm_pmu *pmu); int armpmu_register(struct arm_pmu *pmu); int armpmu_request_irq(int irq, int cpu); void armpmu_free_irq(int irq, int cpu);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.