STRUCT DRM_XE_OA_STREAM_STATUS(9)
π struct drm_xe_oa_stream_status β the Kernel API Manual, bestie edition π
okay so quick vibe check: this is a Kernel API Manual page, and it's all about struct drm_xe_oa_stream_status β the OA stream status that gets returned from the %DRM_XE_OBSERVATION_IOCTL_STATUS observation stream fd ioctl β¨ Userspace can call that ioctl to query the stream status in response to an EIO errno coming out of the observation fd read(). So likeβ¦ when your read says EIO, that's your cue to go ask what's up π«Ά
β¨ SYNOPSIS β¨
struct drm_xe_oa_stream_status {
__u64 extensions;
__u64 oa_status;
#define DRM_XE_OASTATUS_MMIO_TRG_Q_FULL (1 << 3);
#define DRM_XE_OASTATUS_COUNTER_OVERFLOW (1 << 2);
#define DRM_XE_OASTATUS_BUFFER_OVERFLOW (1 << 1);
#define DRM_XE_OASTATUS_REPORT_LOST (1 << 0);
__u64 reserved[3];
};
like, copy it exactly, no cap, character for character π those #defines are right there inside the struct body and they're staying there π₯
π¦ Members π¦
extensionsβ pointer to the first extension struct, if there is one (if any π). basically the "there's more where that came from" field.oa_statusβ the OA stream status itself (see Bspec 46717/61226 for the receipts π).reservedβ reserved for future use π hands off, it's saving space for later.
π SEE ALSO π
the friend group is large, so buckle up bestie β every single one of these is invited to the group chat π
- 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_info(9)enum drm_xe_pxp_session_type(9)enum drm_xe_eu_stall_property_id(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)
and that's the whole page, periodt π
this lil icon lives under ./include/uapi/drm, dated October 2026 β so go read it, slay, and remember: EIO on your observation fd read() is not the end, it's an invitation to query the status π¦β¨ bye bestie, ily, go check your oa_status π
π¦ 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