|
XenevaOS
|
#include <xe_drm.h>
Public Attributes | ||
| __u64 | extensions | |
| __u64 | start | |
| __u64 | end | |
| struct { | ||
| __u32 devmem_fd | ||
| __u32 migration_policy | ||
| } | preferred_mem_loc | |
| struct { | ||
| __u32 val | ||
| __u32 reserved | ||
| } | atomic | |
| struct { | ||
| __u32 val | ||
| __u32 reserved | ||
| } | pat_index | |
| __u64 | reserved [2] | |
struct drm_xe_mem_range_attr - Output of &DRM_IOCTL_XE_VM_QUERY_MEM_RANGE_ATTRS
This structure is provided by userspace and filled by KMD in response to the DRM_IOCTL_XE_VM_QUERY_MEM_RANGE_ATTRS ioctl. It describes memory attributes of memory ranges within a user specified address range in a VM.
The structure includes information such as atomic access policy, page attribute table (PAT) index, and preferred memory location. Userspace allocates an array of these structures and passes a pointer to the ioctl to retrieve attributes for each memory range.
| struct { ... } drm_xe_mem_range_attr::atomic |
@atomic: Atomic access policy
| __u32 drm_xe_mem_range_attr::devmem_fd |
@preferred_mem_loc.devmem_fd: fd for preferred loc
| __u64 drm_xe_mem_range_attr::end |
@end: end of the memory range
| __u64 drm_xe_mem_range_attr::extensions |
@extensions: Pointer to the first extension struct, if any
| __u32 drm_xe_mem_range_attr::migration_policy |
@preferred_mem_loc.migration_policy: Page migration policy
| struct { ... } drm_xe_mem_range_attr::pat_index |
@pat_index: Page attribute table index
| struct { ... } drm_xe_mem_range_attr::preferred_mem_loc |
@preferred_mem_loc: preferred memory location
| __u32 drm_xe_mem_range_attr::reserved |
@atomic.reserved: Reserved
@pat_index.reserved: Reserved
| __u64 drm_xe_mem_range_attr::reserved[2] |
@reserved: Reserved
| __u64 drm_xe_mem_range_attr::start |
@start: start of the memory range
| __u32 drm_xe_mem_range_attr::val |
@atomic.val: atomic attribute
@pat_index.val: PAT index