1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2025 Intel Corporation 4 */ 5 6 #ifndef _XE_PMU_TYPES_H_ 7 #define _XE_PMU_TYPES_H_ 8 9 #include <linux/perf_event.h> 10 #include <linux/spinlock_types.h> 11 12 #define XE_PMU_MAX_GT 2 13 14 /** 15 * struct xe_pmu - PMU related data per Xe device 16 * 17 * Stores per device PMU info that includes event/perf attributes and sampling 18 * counters across all GTs for this device. 19 */ 20 struct xe_pmu { 21 /** 22 * @base: PMU base. 23 */ 24 struct pmu base; 25 /** 26 * @registered: PMU is registered and not in the unregistering process. 27 */ 28 bool registered; 29 /** 30 * @name: Name as registered with perf core. 31 */ 32 const char *name; 33 /** 34 * @supported_events: Bitmap of supported events, indexed by event id 35 */ 36 u64 supported_events; 37 }; 38 39 #endif 40