STRUCT DRM_XE_OA_CONFIG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct drm_xe_oa_config β€” OA metric configuration. Bestie, this page is straight out of the Kernel API Manual, and it’s literally the struct that holds your OA metric config energy. πŸŽ€


🌸 SYNOPSIS 🌸

okay so here’s the exact shape, no edits, no remix:

       struct drm_xe_oa_config {
           __u64 extensions;
           char uuid[36];
           __u32 n_regs;
           __u64 regs_ptr;
        };

🫢 Members 🫢

  • extensions β€” pointer to the first extension struct, if any πŸ‘€ like, if there even is one.
  • uuid β€” a string formatted like "08x-04x-04x-04x-012x" ✨ yes, exactly like that.
  • n_regs β€” number of regs in regs_ptr πŸ”’
  • regs_ptr β€” pointer to (register address, value) pairs for OA config registers. The expected length of the buffer is: (2 * sizeof(u32) * n_regs). 🧚

✨ Description ✨

Multiple OA configs can be added using DRM_XE_OBSERVATION_OP_ADD_CONFIG. πŸ¦‹

A particular config can be specified when opening an OA stream using the DRM_XE_OA_PROPERTY_OA_METRIC_SET property. periodt πŸ’…


πŸ¦‹ SEE ALSO πŸ¦‹

  • 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_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)

okay that’s the whole page, bestie 🫢 source/version: ./include/uapi/drm; date: October 2026; manual: struct drm_xe_oa_config(9). mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from