STRUCT DRM_XE_OBSERVATION_PARAM(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

Okay bestie, welcome to the Kernel API Manual page for struct drm_xe_observation_param(9) πŸ’…βœ¨. This struct is the Input of &DRM_IOCTL_XE_OBSERVATION β€” that’s the official name line, fr fr. It’s giving β€œlittle input package for the observation ioctl” energy, and we’re obsessed.


✨ SYNOPSIS ✨

Here’s the full shape of it, no cap:

struct drm_xe_observation_param {
    __u64 extensions;
    __u64 observation_type;
    __u64 observation_op;
    __u64 param;
};

πŸŽ€ Members πŸŽ€

Every field is a __u64, and every field is important, okay? πŸ’–

  • extensions β€” pointer to the first extension struct, if any.
  • observation_type β€” observation stream type, from enum drm_xe_observation_type.
  • observation_op β€” observation stream op, from enum drm_xe_observation_op.
  • param β€” pointer to actual stream params.

πŸ’œ Description πŸ’œ

The observation layer enables multiplexing observation streams of multiple types 🌈 β€” yes, multiple types, she’s a multiplexer. The actual params for a particular stream operation are supplied via the param pointer. And bestie, use __copy_from_user to get these params. That’s the lore.


πŸ¦‹ SEE ALSO πŸ¦‹

Go read these next, bestie β€” the whole friend group is here:

  • 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)
  • 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)
  • Xe DRM RAS(9)
  • enum drm_xe_ras_error_severity(9)
  • enum drm_xe_ras_error_component(9)

Signed with sparkles 🫢 source/version: ./include/uapi/drm; date: October 2026.

πŸ“¦ where this page comes from