STRUCT DRM_XE_OA_UNIT(9)
π¦ struct drm_xe_oa_unit (9) β Kernel API Manual π¦
okay so bestie, this is a kernel API manual page for struct drm_xe_oa_unit and it's literally the glow-up doc for describing an OA unit. no cap, it's giving "here's everything you need to know about this one struct" energy β¨
πΈ NAME πΈ
struct drm_xe_oa_unit β describe OA unit
like, that's the whole job. it describes an OA unit. iconic, honestly π
β¨ SYNOPSIS β¨
struct drm_xe_oa_unit {
__u64 extensions;
__u32 oa_unit_id;
__u32 oa_unit_type;
__u64 capabilities;
#define DRM_XE_OA_CAPS_BASE (1 << 0);
#define DRM_XE_OA_CAPS_SYNCS (1 << 1);
#define DRM_XE_OA_CAPS_OA_BUFFER_SIZE (1 << 2);
#define DRM_XE_OA_CAPS_WAIT_NUM_REPORTS (1 << 3);
#define DRM_XE_OA_CAPS_OAM (1 << 4);
#define DRM_XE_OA_CAPS_OA_UNIT_GT_ID (1 << 5);
__u64 oa_timestamp_freq;
__u16 gt_id;
__u16 reserved1[3];
__u64 reserved[3];
__u64 num_engines;
struct drm_xe_engine_class_instance eci[];
};
look at her. absolute main character struct. π«Ά
π Members π
time for the vibe check on every single field, one by one, no skipping π₯
extensionsβ pointer to the first extension struct, if any β¨oa_unit_idβ the OA unit ID πoa_unit_typeβ the OA unit type, fromenum drm_xe_oa_unit_typeπ¦capabilitiesβ the OA capabilities bit-mask, so you know what she can do πoa_timestamp_freqβ the OA timestamp freq βgt_idβ the gt id for this OA unit πΈreserved1β MBZ (yes bestie, that's "must be zero" β do not touch, fr fr) π«reservedβ MBZ (again! must be zero! leave it alone!) πnum_enginesβ number of engines in theeciarray π’eciβ the engines attached to this OA unit π§
ok real talk: bothreserved1andreservedare MBZ β must be zero. don't be the person who puts random garbage in there. just don't. π
π SEE ALSO π
Kernel file ./include/uapi/drm/xe_drm.h β plus the whole friend group, in order:
- 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_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) - 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)
like, that's a whole friend group and they're all invited to the party π
that's the whole page bestie, go read the struct, hydrate, and remember: MBZ means must be zero π
and a lil sign-off: this one lives in ./include/uapi/drm, dated October 2026, and it's filed under struct drm_xe_oa_unit(9) β slay, go forth and describe your OA units π
π¦ 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