XE PMU (PERFORMANCE MONITORING UNIT)(9)
π Xe PMU (Performance Monitoring Unit) π
Bestie, welcome to the Kernel API Manual moment for the Xe PMU, section 9 π«Ά. This page is literally about exposing events/counters like GT-C6 residency, GT frequency, and per-class-engine activity to user land via the perf interface. Events are per device, no cap.
All events are listed in sysfs:
$ ls -ld /sys/bus/event_source/devices/xe_*
$ ls /sys/bus/event_source/devices/xe_0000_00_02.0/events/
$ ls /sys/bus/event_source/devices/xe_0000_00_02.0/format/
The following format parameters are available to read events, but only few are valid with each event β so do a little vibe check before you use them π:
gt[60:63]β selectsgtfor the event β¨engine_class[20:27]β selects engine-class for event πengine_instance[12:19]β selects the engine-instance for the event π¦function[44:59]β selects the function of the event (SRIOV enabled) π
For engine specific events (engine-*), the gt, engine_class, and engine_instance parameters must be set as populated by DRM_XE_DEVICE_QUERY_ENGINES, and function if SRIOV is enabled. Periodt.
For gt specific events (gt-*), the gt parameter must be passed. All other parameters will be 0. That's it, that's the rule πΈ.
The standard perf tool can be used to grep for a certain event as well. Example:
$ perf list | grep gt-c6
To sample a specific event for a GT at regular intervals:
$ perf stat -e <event_name,gt=> -I <interval>
π SEE ALSO π
Kernel file ./drivers/gpu/drm/xe/xe_pmu.c, xe_pmu_unregister(9), xe_pmu_register(9) π₯
Cute sign-off: this page's source is ./drivers/gpu/drm/xe, it's dated October 2026, and the footer version vibe is Xe PMU (Perf...toring Unit)(9) πβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms