ENUM DRM_XE_EU_STALL_PROPERTY_ID(9)
π enum drm_xe_eu_stall_property_id(9) β the Kernel API Manual, bestie edition
okay so this is a page from the Kernel API Manual (yep, that's the manual name, we're being fancy today π) and it's all about the EU stall sampling input property ids. Intel Xe GPU girlies, this one's for you π
β¨ NAME β¨
enum drm_xe_eu_stall_property_id β EU stall sampling input property ids. that's it, that's the vibe π
πΈ SYNOPSIS πΈ
enum drm_xe_eu_stall_property_id {
DRM_XE_EU_STALL_PROP_GT_ID ,
DRM_XE_EU_STALL_PROP_SAMPLE_RATE ,
DRM_XE_EU_STALL_PROP_WAIT_NUM_REPORTS
};
like, literally just three little constants in an enum, and they're iconic β¨
π¦ Constants π¦
DRM_XE_EU_STALL_PROP_GT_IDβ this one tells you thegt_idof the GT where the EU stall data is gonna get captured. which graphics tile are we spying on, bestie πDRM_XE_EU_STALL_PROP_SAMPLE_RATEβ the sampling rate, measured in GPU cycles, pulled fromsampling_ratesinstruct drm_xe_query_eu_stall. it's giving "how often do we peek" energy π₯DRM_XE_EU_STALL_PROP_WAIT_NUM_REPORTSβ the minimum number of EU stall data reports that have to be sitting in the kernel buffer before a blockedpollorreadgets unblocked. so it's the "don't wake me up until there's at least this much" number π«Ά
π Description π
so here's the tea β these properties get passed to the driver at open, as a chain of struct drm_xe_ext_set_property structures β with property set to these properties' enums and value set to the corresponding values of these properties. and don't forget: struct drm_xe_user_extension base.name should be set to DRM_XE_EU_STALL_EXTENSION_SET_PROPERTY. no cap, that part matters π
then, with the file descriptor you got from open, user space must enable the EU stall stream fd with DRM_XE_OBSERVATION_IOCTL_ENABLE before calling read. like, before. don't skip it π
and anEIOerrno coming back fromread? that means the HW dropped data because the buffer was full π not a you problem exactly, but definitely a you-are-now-aware-of-it problem.
π SEE ALSO π
the whole friend group, assembled π«Ά:
- Kernel file
./include/uapi/drm/xe_drm.h Xe Device Block Diagram(9)Xe uAPI Overview(9)Xe IOCTL Extensions(9)struct drm_xe_user_extension(9)struct drm_xe_ext_set_property(9)struct drm_xe_engine_class_instance(9)struct drm_xe_engine(9)struct drm_xe_query_engines(9)enum drm_xe_memory_class(9)struct drm_xe_mem_region(9)struct drm_xe_query_mem_regions(9)struct drm_xe_query_config(9)struct drm_xe_gt(9)struct drm_xe_query_gt_list(9)struct drm_xe_query_topology_mask(9)struct drm_xe_query_engine_cycles(9)struct drm_xe_query_uc_fw_version(9)struct drm_xe_query_pxp_status(9)struct drm_xe_device_query(9)struct drm_xe_gem_create(9)struct drm_xe_gem_mmap_offset(9)struct drm_xe_vm_create(9)struct drm_xe_vm_destroy(9)struct drm_xe_vm_bind_op(9)struct drm_xe_vm_bind(9)struct drm_xe_vm_get_property(9)struct drm_xe_exec_queue_create(9)struct drm_xe_exec_queue_destroy(9)struct drm_xe_exec_queue_get_property(9)struct drm_xe_sync(9)struct drm_xe_exec(9)struct drm_xe_wait_user_fence(9)enum drm_xe_observation_type(9)enum drm_xe_observation_op(9)struct drm_xe_observation_param(9)enum drm_xe_observation_ioctls(9)enum drm_xe_oa_unit_type(9)struct drm_xe_oa_unit(9)struct drm_xe_query_oa_units(9)enum drm_xe_oa_format_type(9)enum drm_xe_oa_property_id(9)struct drm_xe_oa_config(9)struct drm_xe_oa_stream_status(9)struct drm_xe_oa_stream_info(9)enum drm_xe_pxp_session_type(9)struct drm_xe_query_eu_stall(9)struct drm_xe_madvise(9)struct drm_xe_mem_range_attr(9)struct drm_xe_vm_query_mem_range_attr(9)struct drm_xe_exec_queue_set_property(9)Xe DRM RAS(9)enum drm_xe_ras_error_severity(9)enum drm_xe_ras_error_component(9)
that's the whole page, bestie, you ate it up π
source file: ./include/uapi/drm Β· version/date: October 2026 Β· originally filed under enum drm_xe_..._property_id(9) β mwah, go read your /sys files or whatever, ily πβ¨
π¦ 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