@@ -80,6 +80,7 @@ extern "C" {
* - &DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY
* - &DRM_IOCTL_XE_EXEC
* - &DRM_IOCTL_XE_WAIT_USER_FENCE
+ * - &DRM_IOCTL_XE_SVM
*/
/*
@@ -100,6 +101,7 @@ extern "C" {
#define DRM_XE_EXEC_QUEUE_GET_PROPERTY 0x08
#define DRM_XE_EXEC 0x09
#define DRM_XE_WAIT_USER_FENCE 0x0a
+#define DRM_XE_SVM 0x0b
/* Must be kept compact -- no holes */
#define DRM_IOCTL_XE_DEVICE_QUERY DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_DEVICE_QUERY, struct drm_xe_device_query)
@@ -113,6 +115,7 @@ extern "C" {
#define DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_GET_PROPERTY, struct drm_xe_exec_queue_get_property)
#define DRM_IOCTL_XE_EXEC DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC, struct drm_xe_exec)
#define DRM_IOCTL_XE_WAIT_USER_FENCE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_WAIT_USER_FENCE, struct drm_xe_wait_user_fence)
+#define DRM_IOCTL_XE_SVM DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_SVM, struct drm_xe_svm_args)
/**
* DOC: Xe IOCTL Extensions
@@ -1339,6 +1342,43 @@ struct drm_xe_wait_user_fence {
__u64 reserved[2];
};
+enum drm_xe_svm_attr_type {
+ DRM_XE_SVM_ATTR_PREFERRED_LOC,
+ DRM_XE_SVM_ATTR_MIGRATION_GRANULARITY,
+ DRM_XE_SVM_ATTR_ATOMIC,
+ DRM_XE_SVM_ATTR_CACHE,
+ DRM_XE_SVM_ATTR_PREFETCH_LOC,
+ DRM_XE_SVM_ATTR_ACCESS_PATTERN,
+};
+
+struct drm_xe_svm_attr {
+ __u32 type;
+ __u32 value;
+};
+
+enum drm_xe_svm_op {
+ DRM_XE_SVM_OP_SET_ATTR,
+ DRM_XE_SVM_OP_GET_ATTR,
+};
+
+/**
+ * struct drm_xe_svm_args - Input of &DRM_IOCTL_XE_SVM
+ *
+ * Set or get memory attributes to a virtual address range
+ */
+struct drm_xe_svm_args {
+ /** @start: start of the virtual address range */
+ __u64 start;
+ /** @size: size of the virtual address range */
+ __u64 size;
+ /** @op: operation, either set or get */
+ __u32 op;
+ /** @nattr: number of attributes */
+ __u32 nattr;
+ /** @attrs: An array of attributes */
+ struct drm_xe_svm_attr attrs[];
+};
+
#if defined(__cplusplus)
}
#endif
Signed-off-by: Oak Zeng <oak.zeng@intel.com> --- include/uapi/drm/xe_drm.h | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+)