[PATCH v14 0/7] drm/xe/pmu: PMU interface for Xe

Lucas De Marchi
2025-01-22T06:24:14Z

Previous versions: https://patchwork.freedesktop.org/series/139121/

For perf/core: first patch adds a new macro in include/linux/perf_event.h.
If it's ok, I'd like to merge it through the drm branch so we can add the
pmu implementation to the xe driver. I'm also Cc'ing linux-perf-users@vger.kernel.org
on the other patches to show its usage.

For "drm/xe/pmu: Enable PMU interface", previously from several authors,
I squashed several changes I suggested in the past to clean it up and
reduce boilerplate code that resulted from copy-paste from i915. More
detailed changes can be found at
https://gitlab.freedesktop.org/demarchi/xe/-/tags/tip-xe-pmu-v13

Compared to v12 this only has 1 event as Vinay said he will rebase the
frequency event on top. I tested this on Lunar Lake and ADL with and
without workload running and the gt-c6 residency seems reasonable.

v14 simplifies the gt-c6 event: no more estimate based on suspend time
since we can't take the spinlock. A simpler version is to get runtime pm
when initializing the event and putting it back when it's done. In
future we can come back with fancier things that don´t block the runtime
pm.

Lucas De Marchi (5):
perf/core: Add PMU_EVENT_ATTR_ID_STRING
drm/xe/pmu: Assert max gt
drm/xe/pmu: Extract xe_pmu_event_update()
drm/xe/pmu: Add attribute skeleton
drm/xe/pmu: Get/put runtime pm on event init

Vinay Belgaumkar (2):
drm/xe/pmu: Enable PMU interface
drm/xe/pmu: Add GT C6 events

drivers/gpu/drm/xe/Makefile | 2 +
drivers/gpu/drm/xe/xe_device.c | 3 +
drivers/gpu/drm/xe/xe_device_types.h | 4 +
drivers/gpu/drm/xe/xe_pmu.c | 360 +++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_pmu.h | 20 ++
drivers/gpu/drm/xe/xe_pmu_types.h | 47 ++++
include/linux/perf_event.h | 7 +-
7 files changed, 441 insertions(+), 2 deletions(-)
create mode 100644 drivers/gpu/drm/xe/xe_pmu.c
create mode 100644 drivers/gpu/drm/xe/xe_pmu.h
create mode 100644 drivers/gpu/drm/xe/xe_pmu_types.h

--
2.48.0