XE DRM RAS(9)
π Xe DRM RAS π (section 9, Kernel API Manual)
okay so bestie, this is the page for Xe DRM RAS β the DRM RAS Netlink Interface's whole personality, but in C form π«Ά The enums and strings defined below map to the attributes of the DRM RAS Netlink Interface. For the complete interface specification, go look at Documentation/netlink/specs/drm_ras.yaml β that's the full lore, iykyk.
β¨ Node Registration β¨
The driver registers DRM RAS nodes for each error severity level, no cap π
enum drm_xe_ras_error_severitydefines the node-id.DRM_XE_RAS_ERROR_SEVERITY_NAMESmaps that node-id to the node-name.
main character energy: the enum is the ID, the names array is the glow-up β¨
πΈ Error Classification πΈ
Each node contains a list of error counters. Every single error is identified by an error-id and an error-name β like a little name tag for your failures, but make it fashion π
enum drm_xe_ras_error_componentdefines the error-id.DRM_XE_RAS_ERROR_COMPONENT_NAMESmaps that error-id to the error-name.
π¦ User Interface π¦
To retrieve error values of a error counter, userspace applications should follow the below steps β literally just these four, bestie, don't skip:
- Use command
LIST_NODESto enumerate all available nodes - Select node by node-id or node-name
- Use command
GET_ERROR_COUNTERSto list errors of specific node - Query specific error values using either error-id or error-name
and then you're done, slay π Here's the lookup-table moment, keep it exact:
// Lookup tables for ID-to-name resolution
static const char *nodes[] = DRM_XE_RAS_ERROR_SEVERITY_NAMES;
static const char *errors[] = DRM_XE_RAS_ERROR_COMPONENT_NAMES;
π«Ά fr fr, those are copied character for character β don't go renaming anything, it's giving "undefined behaviour" and we don't do that here.
β SEE ALSO β
the way this list is long β but every single one of these is iconic and you're gonna need them ππ
- 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)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)enum drm_xe_ras_error_severity(9)enum drm_xe_ras_error_component(9)
β¨ sign-off time β¨ this lil gem lives in ./include/uapi/drm, dated October 2026 β go forth and query those error counters, bestie, you're gonna eat π
π₯
π¦ 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