[Intel-xe] [RFC PATCH] drm/xe/uAPi: Clarify the meaning of min_page_size and MIN_ALIGNMENT
Thomas Hellström
thomas.hellstrom at linux.intel.com
Fri Oct 13 10:22:26 UTC 2023
In particular, don't *enforce* alignment of buffer object sizes to
MIN_ALIGNMENT, as enforcing that for imported dma-bufs would not
really make sense.
Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
Cc: Matthew Brost <matthew.brost at intel.com>
Cc: Francois Dugast <francois.dugast at intel.com>
Signed-off-by: Thomas Hellström <thomas.hellstrom at linux.intel.com>
---
include/uapi/drm/xe_drm.h | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
index d48d8e3c898c..5895c95879d1 100644
--- a/include/uapi/drm/xe_drm.h
+++ b/include/uapi/drm/xe_drm.h
@@ -167,11 +167,10 @@ struct drm_xe_query_mem_region {
*
* When the kernel allocates memory for this region, the
* underlying pages will be at least @min_page_size in size.
- *
- * Important note: When userspace allocates a GTT address which
- * can point to memory allocated from this region, it must also
- * respect this minimum alignment. This is enforced by the
- * kernel.
+ * Buffer objects with an allowable placement in this region may
+ * be created with a smaller size, but for increased performance,
+ * user-space drivers should align sizes of such buffer objects
+ * to this value whenever possible.
*/
__u32 min_page_size;
/**
@@ -252,6 +251,14 @@ struct drm_xe_query_config {
#define XE_QUERY_CONFIG_REV_AND_DEVICE_ID 0
#define XE_QUERY_CONFIG_FLAGS 1
#define XE_QUERY_CONFIG_FLAGS_HAS_VRAM (0x1 << 0)
+/*
+ * XE_QUERY_CONFIG_MIN_ALIGNMENT - GPU VM bind address - and size alignment.
+ * GPU virtual address mappings of buffer objects must have their VM addr and
+ * range aligned to this value, with the exception of buffer objects with
+ * allowable placement in system memory only. If this alignment results in
+ * a mapping beyond the end of the buffer object, accesses beyond the
+ * end of the buffer object have undefined reslut.
+ */
#define XE_QUERY_CONFIG_MIN_ALIGNMENT 2
#define XE_QUERY_CONFIG_VA_BITS 3
#define XE_QUERY_CONFIG_GT_COUNT 4
--
2.41.0
More information about the Intel-xe
mailing list