STRUCT DRM_XE_QUERY_MEM_REGIONS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

struct drm_xe_query_mem_regions β€” bestie, this is the struct that describes your memory regions πŸ’– it's literally the little info packet that tells you what memory this device is bringing to the party.


✨ SYNOPSIS ✨

struct drm_xe_query_mem_regions {
    __u32 num_mem_regions;
    __u32 pad;
    struct drm_xe_mem_region mem_regions[];
};

No cap, that's the whole shape of it 🫢


πŸ’… MEMBERS πŸ’…

  • num_mem_regions β€” the count of memory regions that came back inside mem_regions. It's giving "how many snacks are in the bag" energy πŸ“
  • pad β€” MBZ, aka "must be zero" β€” so like, leave it alone, don't touch it, it's not for you πŸ™ˆ
  • mem_regions β€” the actual returned memory regions for this device. The main character array, periodt πŸ‘‘

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so picture this: you make a query with a struct drm_xe_device_query where .query is equal to DRM_XE_DEVICE_QUERY_MEM_REGIONS β€” and then the reply hands you back a struct drm_xe_query_mem_regions in .data. That's it, that's the vibe ✨ lowkey iconic honestly.


🌈 SEE ALSO 🌈

Your required reading, bestie β€” literally all of these, iykyk πŸ’œ

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

πŸ’€ also this whole thing lives in the Kernel API Manual β€” like, the manual's name is literally right there in the header, so now you know πŸŽ€

Byeee bestie, go read your memory regions πŸ’– this page came from ./include/uapi/drm and it's dated October 2026 β€” slay, see you in the next one βœ¨πŸ¦‹

πŸ“¦ where this page comes from