* [igt-dev] [PATCH v1 0/7] uAPI Alignment - Remove unused features
@ 2023-11-10 15:52 Francois Dugast
2023-11-10 15:52 ` [igt-dev] [PATCH v1 1/7] drm-uapi/xe: Remove useless XE_QUERY_CONFIG_NUM_PARAM Francois Dugast
` (7 more replies)
0 siblings, 8 replies; 17+ messages in thread
From: Francois Dugast @ 2023-11-10 15:52 UTC (permalink / raw)
To: igt-dev
The series "uAPI Alignment - take 2 v3" [1] has grown too much which makes
it difficult to review and to digest by UMDs. This new series is a first
break down which focuses only on removing features which were not used.
It aligns on kernel series [2].
[1] https://patchwork.freedesktop.org/series/126204/
[2] https://patchwork.freedesktop.org/series/126278/
Francois Dugast (5):
drm-uapi/xe: Remove useless XE_QUERY_CONFIG_NUM_PARAM
drm-uapi/xe: Remove unused inaccessible memory region
drm-uapi/xe: Remove unused QUERY_CONFIG_MEM_REGION_COUNT
drm-uapi/xe: Remove unused QUERY_CONFIG_GT_COUNT
drm-uapi/xe: Drop interrupt pmu event
Rodrigo Vivi (2):
drm-uapi/xe: Remove GT_TYPE_REMOTE.
drm-uapi/xe: Kill VM_MADVISE IOCTL and the atomic tests
include/drm-uapi/xe_drm.h | 121 ++++-----------------
lib/xe/xe_ioctl.c | 14 ---
lib/xe/xe_ioctl.h | 2 -
lib/xe/xe_query.c | 11 +-
lib/xe/xe_query.h | 3 -
tests/intel/xe_debugfs.c | 2 -
tests/intel/xe_exec_fault_mode.c | 174 ++-----------------------------
tests/intel/xe_query.c | 6 --
8 files changed, 35 insertions(+), 298 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 17+ messages in thread* [igt-dev] [PATCH v1 1/7] drm-uapi/xe: Remove useless XE_QUERY_CONFIG_NUM_PARAM 2023-11-10 15:52 [igt-dev] [PATCH v1 0/7] uAPI Alignment - Remove unused features Francois Dugast @ 2023-11-10 15:52 ` Francois Dugast 2023-11-13 20:36 ` Rodrigo Vivi 2023-11-10 15:52 ` [igt-dev] [PATCH v1 2/7] drm-uapi/xe: Remove GT_TYPE_REMOTE Francois Dugast ` (6 subsequent siblings) 7 siblings, 1 reply; 17+ messages in thread From: Francois Dugast @ 2023-11-10 15:52 UTC (permalink / raw) To: igt-dev Align with commit ("drm/xe/uapi: Remove useless XE_QUERY_CONFIG_NUM_PARAM") Signed-off-by: Francois Dugast <francois.dugast@intel.com> --- include/drm-uapi/xe_drm.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h index 66658d76c..b316868de 100644 --- a/include/drm-uapi/xe_drm.h +++ b/include/drm-uapi/xe_drm.h @@ -329,7 +329,6 @@ struct drm_xe_query_config { #define XE_QUERY_CONFIG_GT_COUNT 4 #define XE_QUERY_CONFIG_MEM_REGION_COUNT 5 #define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 6 -#define XE_QUERY_CONFIG_NUM_PARAM (XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY + 1) /** @info: array of elements containing the config info */ __u64 info[]; }; -- 2.34.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [igt-dev] [PATCH v1 1/7] drm-uapi/xe: Remove useless XE_QUERY_CONFIG_NUM_PARAM 2023-11-10 15:52 ` [igt-dev] [PATCH v1 1/7] drm-uapi/xe: Remove useless XE_QUERY_CONFIG_NUM_PARAM Francois Dugast @ 2023-11-13 20:36 ` Rodrigo Vivi 0 siblings, 0 replies; 17+ messages in thread From: Rodrigo Vivi @ 2023-11-13 20:36 UTC (permalink / raw) To: Francois Dugast; +Cc: igt-dev On Fri, Nov 10, 2023 at 03:52:05PM +0000, Francois Dugast wrote: > Align with commit ("drm/xe/uapi: Remove useless XE_QUERY_CONFIG_NUM_PARAM") > > Signed-off-by: Francois Dugast <francois.dugast@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > --- > include/drm-uapi/xe_drm.h | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h > index 66658d76c..b316868de 100644 > --- a/include/drm-uapi/xe_drm.h > +++ b/include/drm-uapi/xe_drm.h > @@ -329,7 +329,6 @@ struct drm_xe_query_config { > #define XE_QUERY_CONFIG_GT_COUNT 4 > #define XE_QUERY_CONFIG_MEM_REGION_COUNT 5 > #define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 6 > -#define XE_QUERY_CONFIG_NUM_PARAM (XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY + 1) > /** @info: array of elements containing the config info */ > __u64 info[]; > }; > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] [PATCH v1 2/7] drm-uapi/xe: Remove GT_TYPE_REMOTE. 2023-11-10 15:52 [igt-dev] [PATCH v1 0/7] uAPI Alignment - Remove unused features Francois Dugast 2023-11-10 15:52 ` [igt-dev] [PATCH v1 1/7] drm-uapi/xe: Remove useless XE_QUERY_CONFIG_NUM_PARAM Francois Dugast @ 2023-11-10 15:52 ` Francois Dugast 2023-11-13 15:22 ` Matthew Brost 2023-11-14 15:06 ` Kamil Konieczny 2023-11-10 15:52 ` [igt-dev] [PATCH v1 3/7] drm-uapi/xe: Kill VM_MADVISE IOCTL and the atomic tests Francois Dugast ` (5 subsequent siblings) 7 siblings, 2 replies; 17+ messages in thread From: Francois Dugast @ 2023-11-10 15:52 UTC (permalink / raw) To: igt-dev; +Cc: Rodrigo Vivi From: Rodrigo Vivi <rodrigo.vivi@intel.com> Align with commit ("drm/xe/uapi: Remove GT_TYPE_REMOTE") Cc: Francois Dugast <francois.dugast@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Francois Dugast <francois.dugast@intel.com> --- include/drm-uapi/xe_drm.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h index b316868de..8a18e1726 100644 --- a/include/drm-uapi/xe_drm.h +++ b/include/drm-uapi/xe_drm.h @@ -343,9 +343,8 @@ struct drm_xe_query_config { */ struct drm_xe_query_gt { #define XE_QUERY_GT_TYPE_MAIN 0 -#define XE_QUERY_GT_TYPE_REMOTE 1 -#define XE_QUERY_GT_TYPE_MEDIA 2 - /** @type: GT type: Main, Remote, or Media */ +#define XE_QUERY_GT_TYPE_MEDIA 1 + /** @type: GT type: Main or Media */ __u16 type; /** @gt_id: Unique ID of this GT within the PCI Device */ __u16 gt_id; -- 2.34.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [igt-dev] [PATCH v1 2/7] drm-uapi/xe: Remove GT_TYPE_REMOTE. 2023-11-10 15:52 ` [igt-dev] [PATCH v1 2/7] drm-uapi/xe: Remove GT_TYPE_REMOTE Francois Dugast @ 2023-11-13 15:22 ` Matthew Brost 2023-11-14 15:06 ` Kamil Konieczny 1 sibling, 0 replies; 17+ messages in thread From: Matthew Brost @ 2023-11-13 15:22 UTC (permalink / raw) To: Francois Dugast; +Cc: igt-dev, Rodrigo Vivi On Fri, Nov 10, 2023 at 03:52:06PM +0000, Francois Dugast wrote: > From: Rodrigo Vivi <rodrigo.vivi@intel.com> > > Align with commit ("drm/xe/uapi: Remove GT_TYPE_REMOTE") > > Cc: Francois Dugast <francois.dugast@intel.com> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > Signed-off-by: Francois Dugast <francois.dugast@intel.com> Reviewed-by: Matthew Brost <matthew.brost@intel.com> > --- > include/drm-uapi/xe_drm.h | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h > index b316868de..8a18e1726 100644 > --- a/include/drm-uapi/xe_drm.h > +++ b/include/drm-uapi/xe_drm.h > @@ -343,9 +343,8 @@ struct drm_xe_query_config { > */ > struct drm_xe_query_gt { > #define XE_QUERY_GT_TYPE_MAIN 0 > -#define XE_QUERY_GT_TYPE_REMOTE 1 > -#define XE_QUERY_GT_TYPE_MEDIA 2 > - /** @type: GT type: Main, Remote, or Media */ > +#define XE_QUERY_GT_TYPE_MEDIA 1 > + /** @type: GT type: Main or Media */ > __u16 type; > /** @gt_id: Unique ID of this GT within the PCI Device */ > __u16 gt_id; > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [igt-dev] [PATCH v1 2/7] drm-uapi/xe: Remove GT_TYPE_REMOTE. 2023-11-10 15:52 ` [igt-dev] [PATCH v1 2/7] drm-uapi/xe: Remove GT_TYPE_REMOTE Francois Dugast 2023-11-13 15:22 ` Matthew Brost @ 2023-11-14 15:06 ` Kamil Konieczny 1 sibling, 0 replies; 17+ messages in thread From: Kamil Konieczny @ 2023-11-14 15:06 UTC (permalink / raw) To: igt-dev; +Cc: Rodrigo Vivi Hi Francois, On 2023-11-10 at 15:52:06 +0000, Francois Dugast wrote: > From: Rodrigo Vivi <rodrigo.vivi@intel.com> > please remove last dot "." from subject (you can do it at merge): [PATCH v1 2/7] drm-uapi/xe: Remove GT_TYPE_REMOTE. -------------------------------------------------^ Regards, Kamil > Align with commit ("drm/xe/uapi: Remove GT_TYPE_REMOTE") > > Cc: Francois Dugast <francois.dugast@intel.com> ----- ^^^^^^^^^^^^^^^ Btw do you need to add yourself at Cc when you have s-o-b? > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > Signed-off-by: Francois Dugast <francois.dugast@intel.com> > --- > include/drm-uapi/xe_drm.h | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h > index b316868de..8a18e1726 100644 > --- a/include/drm-uapi/xe_drm.h > +++ b/include/drm-uapi/xe_drm.h > @@ -343,9 +343,8 @@ struct drm_xe_query_config { > */ > struct drm_xe_query_gt { > #define XE_QUERY_GT_TYPE_MAIN 0 > -#define XE_QUERY_GT_TYPE_REMOTE 1 > -#define XE_QUERY_GT_TYPE_MEDIA 2 > - /** @type: GT type: Main, Remote, or Media */ > +#define XE_QUERY_GT_TYPE_MEDIA 1 > + /** @type: GT type: Main or Media */ > __u16 type; > /** @gt_id: Unique ID of this GT within the PCI Device */ > __u16 gt_id; > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] [PATCH v1 3/7] drm-uapi/xe: Kill VM_MADVISE IOCTL and the atomic tests 2023-11-10 15:52 [igt-dev] [PATCH v1 0/7] uAPI Alignment - Remove unused features Francois Dugast 2023-11-10 15:52 ` [igt-dev] [PATCH v1 1/7] drm-uapi/xe: Remove useless XE_QUERY_CONFIG_NUM_PARAM Francois Dugast 2023-11-10 15:52 ` [igt-dev] [PATCH v1 2/7] drm-uapi/xe: Remove GT_TYPE_REMOTE Francois Dugast @ 2023-11-10 15:52 ` Francois Dugast 2023-11-13 15:38 ` Matthew Brost 2023-11-10 15:52 ` [igt-dev] [PATCH v1 4/7] drm-uapi/xe: Remove unused inaccessible memory region Francois Dugast ` (4 subsequent siblings) 7 siblings, 1 reply; 17+ messages in thread From: Francois Dugast @ 2023-11-10 15:52 UTC (permalink / raw) To: igt-dev; +Cc: Rodrigo Vivi From: Rodrigo Vivi <rodrigo.vivi@intel.com> Align with commit ("drm/xe/uapi: Kill VM_MADVISE IOCTL"). Cc: Francois Dugast <francois.dugast@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Francois Dugast <francois.dugast@intel.com> --- include/drm-uapi/xe_drm.h | 92 ++-------------- lib/xe/xe_ioctl.c | 14 --- lib/xe/xe_ioctl.h | 2 - tests/intel/xe_exec_fault_mode.c | 174 ++----------------------------- 4 files changed, 20 insertions(+), 262 deletions(-) diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h index 8a18e1726..1d8dc1b9c 100644 --- a/include/drm-uapi/xe_drm.h +++ b/include/drm-uapi/xe_drm.h @@ -103,28 +103,26 @@ struct xe_user_extension { #define DRM_XE_VM_CREATE 0x03 #define DRM_XE_VM_DESTROY 0x04 #define DRM_XE_VM_BIND 0x05 -#define DRM_XE_EXEC_QUEUE_CREATE 0x06 -#define DRM_XE_EXEC_QUEUE_DESTROY 0x07 -#define DRM_XE_EXEC 0x08 +#define DRM_XE_EXEC 0x06 +#define DRM_XE_EXEC_QUEUE_CREATE 0x07 +#define DRM_XE_EXEC_QUEUE_DESTROY 0x08 #define DRM_XE_EXEC_QUEUE_SET_PROPERTY 0x09 -#define DRM_XE_WAIT_USER_FENCE 0x0a -#define DRM_XE_VM_MADVISE 0x0b -#define DRM_XE_EXEC_QUEUE_GET_PROPERTY 0x0c - +#define DRM_XE_EXEC_QUEUE_GET_PROPERTY 0x0a +#define DRM_XE_WAIT_USER_FENCE 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) #define DRM_IOCTL_XE_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_GEM_CREATE, struct drm_xe_gem_create) #define DRM_IOCTL_XE_GEM_MMAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_GEM_MMAP_OFFSET, struct drm_xe_gem_mmap_offset) #define DRM_IOCTL_XE_VM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_VM_CREATE, struct drm_xe_vm_create) -#define DRM_IOCTL_XE_VM_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_DESTROY, struct drm_xe_vm_destroy) -#define DRM_IOCTL_XE_VM_BIND DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_BIND, struct drm_xe_vm_bind) +#define DRM_IOCTL_XE_VM_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_DESTROY, struct drm_xe_vm_destroy) +#define DRM_IOCTL_XE_VM_BIND DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_BIND, struct drm_xe_vm_bind) +#define DRM_IOCTL_XE_EXEC DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC, struct drm_xe_exec) #define DRM_IOCTL_XE_EXEC_QUEUE_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_CREATE, struct drm_xe_exec_queue_create) +#define DRM_IOCTL_XE_EXEC_QUEUE_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_DESTROY, struct drm_xe_exec_queue_destroy) +#define DRM_IOCTL_XE_EXEC_QUEUE_SET_PROPERTY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_SET_PROPERTY, struct drm_xe_exec_queue_set_property) #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_QUEUE_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_DESTROY, struct drm_xe_exec_queue_destroy) -#define DRM_IOCTL_XE_EXEC DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC, struct drm_xe_exec) -#define DRM_IOCTL_XE_EXEC_QUEUE_SET_PROPERTY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_SET_PROPERTY, struct drm_xe_exec_queue_set_property) #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_VM_MADVISE DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_MADVISE, struct drm_xe_vm_madvise) /** struct drm_xe_engine_class_instance - instance of an engine class */ struct drm_xe_engine_class_instance { @@ -978,74 +976,6 @@ struct drm_xe_wait_user_fence { __u64 reserved[2]; }; -struct drm_xe_vm_madvise { - /** @extensions: Pointer to the first extension struct, if any */ - __u64 extensions; - - /** @vm_id: The ID VM in which the VMA exists */ - __u32 vm_id; - - /** @pad: MBZ */ - __u32 pad; - - /** @range: Number of bytes in the VMA */ - __u64 range; - - /** @addr: Address of the VMA to operation on */ - __u64 addr; - - /* - * Setting the preferred location will trigger a migrate of the VMA - * backing store to new location if the backing store is already - * allocated. - * - * For DRM_XE_VM_MADVISE_PREFERRED_MEM_CLASS usage, see enum - * drm_xe_memory_class. - */ -#define DRM_XE_VM_MADVISE_PREFERRED_MEM_CLASS 0 -#define DRM_XE_VM_MADVISE_PREFERRED_GT 1 - /* - * In this case lower 32 bits are mem class, upper 32 are GT. - * Combination provides a single IOCTL plus migrate VMA to preferred - * location. - */ -#define DRM_XE_VM_MADVISE_PREFERRED_MEM_CLASS_GT 2 - /* - * The CPU will do atomic memory operations to this VMA. Must be set on - * some devices for atomics to behave correctly. - */ -#define DRM_XE_VM_MADVISE_CPU_ATOMIC 3 - /* - * The device will do atomic memory operations to this VMA. Must be set - * on some devices for atomics to behave correctly. - */ -#define DRM_XE_VM_MADVISE_DEVICE_ATOMIC 4 - /* - * Priority WRT to eviction (moving from preferred memory location due - * to memory pressure). The lower the priority, the more likely to be - * evicted. - */ -#define DRM_XE_VM_MADVISE_PRIORITY 5 -#define DRM_XE_VMA_PRIORITY_LOW 0 - /* Default */ -#define DRM_XE_VMA_PRIORITY_NORMAL 1 - /* Must be user with elevated privileges */ -#define DRM_XE_VMA_PRIORITY_HIGH 2 - /* Pin the VMA in memory, must be user with elevated privileges */ -#define DRM_XE_VM_MADVISE_PIN 6 - /** @property: property to set */ - __u32 property; - - /** @pad2: MBZ */ - __u32 pad2; - - /** @value: property value */ - __u64 value; - - /** @reserved: Reserved */ - __u64 reserved[2]; -}; - /** * DOC: XE PMU event config IDs * diff --git a/lib/xe/xe_ioctl.c b/lib/xe/xe_ioctl.c index 895e3bd4e..c4077801e 100644 --- a/lib/xe/xe_ioctl.c +++ b/lib/xe/xe_ioctl.c @@ -475,17 +475,3 @@ void xe_force_gt_reset(int fd, int gt) minor(st.st_rdev), gt); system(reset_string); } - -void xe_vm_madvise(int fd, uint32_t vm, uint64_t addr, uint64_t size, - uint32_t property, uint32_t value) -{ - struct drm_xe_vm_madvise madvise = { - .vm_id = vm, - .range = size, - .addr = addr, - .property = property, - .value = value, - }; - - igt_assert_eq(igt_ioctl(fd, DRM_IOCTL_XE_VM_MADVISE, &madvise), 0); -} diff --git a/lib/xe/xe_ioctl.h b/lib/xe/xe_ioctl.h index a8dbcf376..d9c97bf22 100644 --- a/lib/xe/xe_ioctl.h +++ b/lib/xe/xe_ioctl.h @@ -90,7 +90,5 @@ int64_t xe_wait_ufence_abstime(int fd, uint64_t *addr, uint64_t value, struct drm_xe_engine_class_instance *eci, int64_t timeout); void xe_force_gt_reset(int fd, int gt); -void xe_vm_madvise(int fd, uint32_t vm, uint64_t addr, uint64_t size, - uint32_t property, uint32_t value); #endif /* XE_IOCTL_H */ diff --git a/tests/intel/xe_exec_fault_mode.c b/tests/intel/xe_exec_fault_mode.c index 92d8690a1..64b5c59a2 100644 --- a/tests/intel/xe_exec_fault_mode.c +++ b/tests/intel/xe_exec_fault_mode.c @@ -23,15 +23,15 @@ #include <string.h> #define MAX_N_EXEC_QUEUES 16 -#define USERPTR (0x1 << 0) -#define REBIND (0x1 << 1) -#define INVALIDATE (0x1 << 2) -#define RACE (0x1 << 3) -#define BIND_EXEC_QUEUE (0x1 << 4) -#define WAIT_ATOMIC (0x1 << 5) -#define IMMEDIATE (0x1 << 6) -#define PREFETCH (0x1 << 7) -#define INVALID_FAULT (0x1 << 8) + +#define USERPTR (0x1 << 0) +#define REBIND (0x1 << 1) +#define INVALIDATE (0x1 << 2) +#define RACE (0x1 << 3) +#define BIND_EXEC_QUEUE (0x1 << 4) +#define IMMEDIATE (0x1 << 5) +#define PREFETCH (0x1 << 6) +#define INVALID_FAULT (0x1 << 7) /** * SUBTEST: once-%s @@ -317,146 +317,6 @@ test_exec(int fd, struct drm_xe_engine_class_instance *eci, close(map_fd); } -#define MI_ATOMIC_INLINE_DATA (1 << 18) -#define MI_ATOMIC_ADD (0x7 << 8) - -/** - * SUBTEST: atomic-once - * Description: Run atomic fault mode test only once - * Test category: functionality test - * - * SUBTEST: atomic-once-wait - * Description: Run atomic wait fault mode test once - * Test category: functionality test - * - * SUBTEST: atomic-many - * Description: Run atomic fault mode test many times - * Description: atomic many - * Test category: functionality test - * - * SUBTEST: atomic-many-wait - * Description: Run atomic wait fault mode test many times - * Test category: functionality test - * - */ -static void -test_atomic(int fd, struct drm_xe_engine_class_instance *eci, - int n_atomic, unsigned int flags) -{ - uint32_t vm; - uint64_t addr = 0x1a0000, addr_wait; -#define USER_FENCE_VALUE 0xdeadbeefdeadbeefull - struct drm_xe_sync sync[1] = { - { .flags = DRM_XE_SYNC_USER_FENCE | DRM_XE_SYNC_SIGNAL, - .timeline_value = USER_FENCE_VALUE }, - }; - struct drm_xe_exec exec = { - .num_batch_buffer = 1, - .num_syncs = 1, - .syncs = to_user_pointer(sync), - }; - uint32_t exec_queue; - size_t bo_size; - uint32_t bo, bo_wait; - struct { - uint32_t batch[16]; - uint64_t pad; - uint64_t vm_sync; - uint64_t exec_sync; - uint32_t data; - } *data; - struct { - uint32_t batch[16]; - uint64_t pad; - uint64_t vm_sync; - uint64_t exec_sync; - uint32_t data; - } *wait; - uint32_t *ptr; - int i, b, wait_idx = 0; - - vm = xe_vm_create(fd, DRM_XE_VM_CREATE_ASYNC_DEFAULT | - DRM_XE_VM_CREATE_FAULT_MODE, 0); - bo_size = sizeof(*data) * n_atomic; - bo_size = ALIGN(bo_size + xe_cs_prefetch_size(fd), - xe_get_default_alignment(fd)); - addr_wait = addr + bo_size; - - bo = xe_bo_create_flags(fd, vm, bo_size, - all_memory_regions(fd) | - visible_vram_if_possible(fd, 0)); - bo_wait = xe_bo_create_flags(fd, vm, bo_size, - visible_vram_if_possible(fd, eci->gt_id)); - data = xe_bo_map(fd, bo, bo_size); - wait = xe_bo_map(fd, bo_wait, bo_size); - ptr = &data[0].data; - memset(data, 0, bo_size); - memset(wait, 0, bo_size); - - exec_queue = xe_exec_queue_create(fd, vm, eci, 0); - - sync[0].addr = to_user_pointer(&wait[wait_idx].vm_sync); - xe_vm_bind_async(fd, vm, 0, bo, 0, addr, bo_size, sync, 1); - xe_wait_ufence(fd, &wait[wait_idx++].vm_sync, USER_FENCE_VALUE, NULL, - ONE_SEC); - - sync[0].addr = to_user_pointer(&wait[wait_idx].vm_sync); - xe_vm_bind_async(fd, vm, 0, bo_wait, 0, addr_wait, bo_size, sync, 1); - xe_wait_ufence(fd, &wait[wait_idx++].vm_sync, USER_FENCE_VALUE, NULL, - ONE_SEC); - - xe_vm_madvise(fd, vm, addr, bo_size, DRM_XE_VM_MADVISE_CPU_ATOMIC, 1); - xe_vm_madvise(fd, vm, addr, bo_size, DRM_XE_VM_MADVISE_DEVICE_ATOMIC, 1); - - for (i = 0; i < n_atomic; i++) { - uint64_t batch_offset = (char *)&data[i].batch - (char *)data; - uint64_t batch_addr = addr + batch_offset; - uint64_t sdi_offset = (char *)&data[0].data - (char *)data; - uint64_t sdi_addr = addr + sdi_offset; - - b = 0; - data[i].batch[b++] = MI_ATOMIC | MI_ATOMIC_INLINE_DATA | - MI_ATOMIC_ADD; - data[i].batch[b++] = sdi_addr; - data[i].batch[b++] = sdi_addr >> 32; - data[i].batch[b++] = 1; - data[i].batch[b++] = MI_BATCH_BUFFER_END; - - sync[0].addr = addr_wait + - (char *)&wait[i].exec_sync - (char *)wait; - - exec.exec_queue_id = exec_queue; - exec.address = batch_addr; - xe_exec(fd, &exec); - - if (flags & WAIT_ATOMIC) - xe_wait_ufence(fd, &wait[i].exec_sync, USER_FENCE_VALUE, - NULL, ONE_SEC); - __atomic_add_fetch(ptr, 1, __ATOMIC_SEQ_CST); - } - - xe_wait_ufence(fd, &wait[n_atomic - 1].exec_sync, USER_FENCE_VALUE, - NULL, ONE_SEC); - igt_assert(*ptr == n_atomic * 2); - - sync[0].addr = to_user_pointer(&wait[wait_idx].vm_sync); - xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1); - xe_wait_ufence(fd, &wait[wait_idx++].vm_sync, USER_FENCE_VALUE, NULL, - ONE_SEC); - - sync[0].addr = to_user_pointer(&wait[wait_idx].vm_sync); - xe_vm_unbind_async(fd, vm, 0, 0, addr_wait, bo_size, sync, 1); - xe_wait_ufence(fd, &wait[wait_idx++].vm_sync, USER_FENCE_VALUE, NULL, - ONE_SEC); - - xe_exec_queue_destroy(fd, exec_queue); - munmap(data, bo_size); - munmap(wait, bo_size); - gem_close(fd, bo); - gem_close(fd, bo_wait); - xe_vm_destroy(fd, vm); -} - igt_main { struct drm_xe_engine_class_instance *hwe; @@ -546,22 +406,6 @@ igt_main s->flags); } - igt_subtest("atomic-once") - xe_for_each_hw_engine(fd, hwe) - test_atomic(fd, hwe, 1, 0); - - igt_subtest("atomic-once-wait") - xe_for_each_hw_engine(fd, hwe) - test_atomic(fd, hwe, 1, WAIT_ATOMIC); - - igt_subtest("atomic-many") - xe_for_each_hw_engine(fd, hwe) - test_atomic(fd, hwe, 8, 0); - - igt_subtest("atomic-many-wait") - xe_for_each_hw_engine(fd, hwe) - test_atomic(fd, hwe, 8, WAIT_ATOMIC); - igt_fixture drm_close_driver(fd); } -- 2.34.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [igt-dev] [PATCH v1 3/7] drm-uapi/xe: Kill VM_MADVISE IOCTL and the atomic tests 2023-11-10 15:52 ` [igt-dev] [PATCH v1 3/7] drm-uapi/xe: Kill VM_MADVISE IOCTL and the atomic tests Francois Dugast @ 2023-11-13 15:38 ` Matthew Brost 0 siblings, 0 replies; 17+ messages in thread From: Matthew Brost @ 2023-11-13 15:38 UTC (permalink / raw) To: Francois Dugast; +Cc: igt-dev, Rodrigo Vivi On Fri, Nov 10, 2023 at 03:52:07PM +0000, Francois Dugast wrote: > From: Rodrigo Vivi <rodrigo.vivi@intel.com> > > Align with commit ("drm/xe/uapi: Kill VM_MADVISE IOCTL"). > > Cc: Francois Dugast <francois.dugast@intel.com> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > Signed-off-by: Francois Dugast <francois.dugast@intel.com> Reviewed-by: Matthew Brost <matthew.brost@intel.com> > --- > include/drm-uapi/xe_drm.h | 92 ++-------------- > lib/xe/xe_ioctl.c | 14 --- > lib/xe/xe_ioctl.h | 2 - > tests/intel/xe_exec_fault_mode.c | 174 ++----------------------------- > 4 files changed, 20 insertions(+), 262 deletions(-) > > diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h > index 8a18e1726..1d8dc1b9c 100644 > --- a/include/drm-uapi/xe_drm.h > +++ b/include/drm-uapi/xe_drm.h > @@ -103,28 +103,26 @@ struct xe_user_extension { > #define DRM_XE_VM_CREATE 0x03 > #define DRM_XE_VM_DESTROY 0x04 > #define DRM_XE_VM_BIND 0x05 > -#define DRM_XE_EXEC_QUEUE_CREATE 0x06 > -#define DRM_XE_EXEC_QUEUE_DESTROY 0x07 > -#define DRM_XE_EXEC 0x08 > +#define DRM_XE_EXEC 0x06 > +#define DRM_XE_EXEC_QUEUE_CREATE 0x07 > +#define DRM_XE_EXEC_QUEUE_DESTROY 0x08 > #define DRM_XE_EXEC_QUEUE_SET_PROPERTY 0x09 > -#define DRM_XE_WAIT_USER_FENCE 0x0a > -#define DRM_XE_VM_MADVISE 0x0b > -#define DRM_XE_EXEC_QUEUE_GET_PROPERTY 0x0c > - > +#define DRM_XE_EXEC_QUEUE_GET_PROPERTY 0x0a > +#define DRM_XE_WAIT_USER_FENCE 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) > #define DRM_IOCTL_XE_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_GEM_CREATE, struct drm_xe_gem_create) > #define DRM_IOCTL_XE_GEM_MMAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_GEM_MMAP_OFFSET, struct drm_xe_gem_mmap_offset) > #define DRM_IOCTL_XE_VM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_VM_CREATE, struct drm_xe_vm_create) > -#define DRM_IOCTL_XE_VM_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_DESTROY, struct drm_xe_vm_destroy) > -#define DRM_IOCTL_XE_VM_BIND DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_BIND, struct drm_xe_vm_bind) > +#define DRM_IOCTL_XE_VM_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_DESTROY, struct drm_xe_vm_destroy) > +#define DRM_IOCTL_XE_VM_BIND DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_BIND, struct drm_xe_vm_bind) > +#define DRM_IOCTL_XE_EXEC DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC, struct drm_xe_exec) > #define DRM_IOCTL_XE_EXEC_QUEUE_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_CREATE, struct drm_xe_exec_queue_create) > +#define DRM_IOCTL_XE_EXEC_QUEUE_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_DESTROY, struct drm_xe_exec_queue_destroy) > +#define DRM_IOCTL_XE_EXEC_QUEUE_SET_PROPERTY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_SET_PROPERTY, struct drm_xe_exec_queue_set_property) > #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_QUEUE_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_DESTROY, struct drm_xe_exec_queue_destroy) > -#define DRM_IOCTL_XE_EXEC DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC, struct drm_xe_exec) > -#define DRM_IOCTL_XE_EXEC_QUEUE_SET_PROPERTY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_SET_PROPERTY, struct drm_xe_exec_queue_set_property) > #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_VM_MADVISE DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_MADVISE, struct drm_xe_vm_madvise) > > /** struct drm_xe_engine_class_instance - instance of an engine class */ > struct drm_xe_engine_class_instance { > @@ -978,74 +976,6 @@ struct drm_xe_wait_user_fence { > __u64 reserved[2]; > }; > > -struct drm_xe_vm_madvise { > - /** @extensions: Pointer to the first extension struct, if any */ > - __u64 extensions; > - > - /** @vm_id: The ID VM in which the VMA exists */ > - __u32 vm_id; > - > - /** @pad: MBZ */ > - __u32 pad; > - > - /** @range: Number of bytes in the VMA */ > - __u64 range; > - > - /** @addr: Address of the VMA to operation on */ > - __u64 addr; > - > - /* > - * Setting the preferred location will trigger a migrate of the VMA > - * backing store to new location if the backing store is already > - * allocated. > - * > - * For DRM_XE_VM_MADVISE_PREFERRED_MEM_CLASS usage, see enum > - * drm_xe_memory_class. > - */ > -#define DRM_XE_VM_MADVISE_PREFERRED_MEM_CLASS 0 > -#define DRM_XE_VM_MADVISE_PREFERRED_GT 1 > - /* > - * In this case lower 32 bits are mem class, upper 32 are GT. > - * Combination provides a single IOCTL plus migrate VMA to preferred > - * location. > - */ > -#define DRM_XE_VM_MADVISE_PREFERRED_MEM_CLASS_GT 2 > - /* > - * The CPU will do atomic memory operations to this VMA. Must be set on > - * some devices for atomics to behave correctly. > - */ > -#define DRM_XE_VM_MADVISE_CPU_ATOMIC 3 > - /* > - * The device will do atomic memory operations to this VMA. Must be set > - * on some devices for atomics to behave correctly. > - */ > -#define DRM_XE_VM_MADVISE_DEVICE_ATOMIC 4 > - /* > - * Priority WRT to eviction (moving from preferred memory location due > - * to memory pressure). The lower the priority, the more likely to be > - * evicted. > - */ > -#define DRM_XE_VM_MADVISE_PRIORITY 5 > -#define DRM_XE_VMA_PRIORITY_LOW 0 > - /* Default */ > -#define DRM_XE_VMA_PRIORITY_NORMAL 1 > - /* Must be user with elevated privileges */ > -#define DRM_XE_VMA_PRIORITY_HIGH 2 > - /* Pin the VMA in memory, must be user with elevated privileges */ > -#define DRM_XE_VM_MADVISE_PIN 6 > - /** @property: property to set */ > - __u32 property; > - > - /** @pad2: MBZ */ > - __u32 pad2; > - > - /** @value: property value */ > - __u64 value; > - > - /** @reserved: Reserved */ > - __u64 reserved[2]; > -}; > - > /** > * DOC: XE PMU event config IDs > * > diff --git a/lib/xe/xe_ioctl.c b/lib/xe/xe_ioctl.c > index 895e3bd4e..c4077801e 100644 > --- a/lib/xe/xe_ioctl.c > +++ b/lib/xe/xe_ioctl.c > @@ -475,17 +475,3 @@ void xe_force_gt_reset(int fd, int gt) > minor(st.st_rdev), gt); > system(reset_string); > } > - > -void xe_vm_madvise(int fd, uint32_t vm, uint64_t addr, uint64_t size, > - uint32_t property, uint32_t value) > -{ > - struct drm_xe_vm_madvise madvise = { > - .vm_id = vm, > - .range = size, > - .addr = addr, > - .property = property, > - .value = value, > - }; > - > - igt_assert_eq(igt_ioctl(fd, DRM_IOCTL_XE_VM_MADVISE, &madvise), 0); > -} > diff --git a/lib/xe/xe_ioctl.h b/lib/xe/xe_ioctl.h > index a8dbcf376..d9c97bf22 100644 > --- a/lib/xe/xe_ioctl.h > +++ b/lib/xe/xe_ioctl.h > @@ -90,7 +90,5 @@ int64_t xe_wait_ufence_abstime(int fd, uint64_t *addr, uint64_t value, > struct drm_xe_engine_class_instance *eci, > int64_t timeout); > void xe_force_gt_reset(int fd, int gt); > -void xe_vm_madvise(int fd, uint32_t vm, uint64_t addr, uint64_t size, > - uint32_t property, uint32_t value); > > #endif /* XE_IOCTL_H */ > diff --git a/tests/intel/xe_exec_fault_mode.c b/tests/intel/xe_exec_fault_mode.c > index 92d8690a1..64b5c59a2 100644 > --- a/tests/intel/xe_exec_fault_mode.c > +++ b/tests/intel/xe_exec_fault_mode.c > @@ -23,15 +23,15 @@ > #include <string.h> > > #define MAX_N_EXEC_QUEUES 16 > -#define USERPTR (0x1 << 0) > -#define REBIND (0x1 << 1) > -#define INVALIDATE (0x1 << 2) > -#define RACE (0x1 << 3) > -#define BIND_EXEC_QUEUE (0x1 << 4) > -#define WAIT_ATOMIC (0x1 << 5) > -#define IMMEDIATE (0x1 << 6) > -#define PREFETCH (0x1 << 7) > -#define INVALID_FAULT (0x1 << 8) > + > +#define USERPTR (0x1 << 0) > +#define REBIND (0x1 << 1) > +#define INVALIDATE (0x1 << 2) > +#define RACE (0x1 << 3) > +#define BIND_EXEC_QUEUE (0x1 << 4) > +#define IMMEDIATE (0x1 << 5) > +#define PREFETCH (0x1 << 6) > +#define INVALID_FAULT (0x1 << 7) > > /** > * SUBTEST: once-%s > @@ -317,146 +317,6 @@ test_exec(int fd, struct drm_xe_engine_class_instance *eci, > close(map_fd); > } > > -#define MI_ATOMIC_INLINE_DATA (1 << 18) > -#define MI_ATOMIC_ADD (0x7 << 8) > - > -/** > - * SUBTEST: atomic-once > - * Description: Run atomic fault mode test only once > - * Test category: functionality test > - * > - * SUBTEST: atomic-once-wait > - * Description: Run atomic wait fault mode test once > - * Test category: functionality test > - * > - * SUBTEST: atomic-many > - * Description: Run atomic fault mode test many times > - * Description: atomic many > - * Test category: functionality test > - * > - * SUBTEST: atomic-many-wait > - * Description: Run atomic wait fault mode test many times > - * Test category: functionality test > - * > - */ > -static void > -test_atomic(int fd, struct drm_xe_engine_class_instance *eci, > - int n_atomic, unsigned int flags) > -{ > - uint32_t vm; > - uint64_t addr = 0x1a0000, addr_wait; > -#define USER_FENCE_VALUE 0xdeadbeefdeadbeefull > - struct drm_xe_sync sync[1] = { > - { .flags = DRM_XE_SYNC_USER_FENCE | DRM_XE_SYNC_SIGNAL, > - .timeline_value = USER_FENCE_VALUE }, > - }; > - struct drm_xe_exec exec = { > - .num_batch_buffer = 1, > - .num_syncs = 1, > - .syncs = to_user_pointer(sync), > - }; > - uint32_t exec_queue; > - size_t bo_size; > - uint32_t bo, bo_wait; > - struct { > - uint32_t batch[16]; > - uint64_t pad; > - uint64_t vm_sync; > - uint64_t exec_sync; > - uint32_t data; > - } *data; > - struct { > - uint32_t batch[16]; > - uint64_t pad; > - uint64_t vm_sync; > - uint64_t exec_sync; > - uint32_t data; > - } *wait; > - uint32_t *ptr; > - int i, b, wait_idx = 0; > - > - vm = xe_vm_create(fd, DRM_XE_VM_CREATE_ASYNC_DEFAULT | > - DRM_XE_VM_CREATE_FAULT_MODE, 0); > - bo_size = sizeof(*data) * n_atomic; > - bo_size = ALIGN(bo_size + xe_cs_prefetch_size(fd), > - xe_get_default_alignment(fd)); > - addr_wait = addr + bo_size; > - > - bo = xe_bo_create_flags(fd, vm, bo_size, > - all_memory_regions(fd) | > - visible_vram_if_possible(fd, 0)); > - bo_wait = xe_bo_create_flags(fd, vm, bo_size, > - visible_vram_if_possible(fd, eci->gt_id)); > - data = xe_bo_map(fd, bo, bo_size); > - wait = xe_bo_map(fd, bo_wait, bo_size); > - ptr = &data[0].data; > - memset(data, 0, bo_size); > - memset(wait, 0, bo_size); > - > - exec_queue = xe_exec_queue_create(fd, vm, eci, 0); > - > - sync[0].addr = to_user_pointer(&wait[wait_idx].vm_sync); > - xe_vm_bind_async(fd, vm, 0, bo, 0, addr, bo_size, sync, 1); > - xe_wait_ufence(fd, &wait[wait_idx++].vm_sync, USER_FENCE_VALUE, NULL, > - ONE_SEC); > - > - sync[0].addr = to_user_pointer(&wait[wait_idx].vm_sync); > - xe_vm_bind_async(fd, vm, 0, bo_wait, 0, addr_wait, bo_size, sync, 1); > - xe_wait_ufence(fd, &wait[wait_idx++].vm_sync, USER_FENCE_VALUE, NULL, > - ONE_SEC); > - > - xe_vm_madvise(fd, vm, addr, bo_size, DRM_XE_VM_MADVISE_CPU_ATOMIC, 1); > - xe_vm_madvise(fd, vm, addr, bo_size, DRM_XE_VM_MADVISE_DEVICE_ATOMIC, 1); > - > - for (i = 0; i < n_atomic; i++) { > - uint64_t batch_offset = (char *)&data[i].batch - (char *)data; > - uint64_t batch_addr = addr + batch_offset; > - uint64_t sdi_offset = (char *)&data[0].data - (char *)data; > - uint64_t sdi_addr = addr + sdi_offset; > - > - b = 0; > - data[i].batch[b++] = MI_ATOMIC | MI_ATOMIC_INLINE_DATA | > - MI_ATOMIC_ADD; > - data[i].batch[b++] = sdi_addr; > - data[i].batch[b++] = sdi_addr >> 32; > - data[i].batch[b++] = 1; > - data[i].batch[b++] = MI_BATCH_BUFFER_END; > - > - sync[0].addr = addr_wait + > - (char *)&wait[i].exec_sync - (char *)wait; > - > - exec.exec_queue_id = exec_queue; > - exec.address = batch_addr; > - xe_exec(fd, &exec); > - > - if (flags & WAIT_ATOMIC) > - xe_wait_ufence(fd, &wait[i].exec_sync, USER_FENCE_VALUE, > - NULL, ONE_SEC); > - __atomic_add_fetch(ptr, 1, __ATOMIC_SEQ_CST); > - } > - > - xe_wait_ufence(fd, &wait[n_atomic - 1].exec_sync, USER_FENCE_VALUE, > - NULL, ONE_SEC); > - igt_assert(*ptr == n_atomic * 2); > - > - sync[0].addr = to_user_pointer(&wait[wait_idx].vm_sync); > - xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1); > - xe_wait_ufence(fd, &wait[wait_idx++].vm_sync, USER_FENCE_VALUE, NULL, > - ONE_SEC); > - > - sync[0].addr = to_user_pointer(&wait[wait_idx].vm_sync); > - xe_vm_unbind_async(fd, vm, 0, 0, addr_wait, bo_size, sync, 1); > - xe_wait_ufence(fd, &wait[wait_idx++].vm_sync, USER_FENCE_VALUE, NULL, > - ONE_SEC); > - > - xe_exec_queue_destroy(fd, exec_queue); > - munmap(data, bo_size); > - munmap(wait, bo_size); > - gem_close(fd, bo); > - gem_close(fd, bo_wait); > - xe_vm_destroy(fd, vm); > -} > - > igt_main > { > struct drm_xe_engine_class_instance *hwe; > @@ -546,22 +406,6 @@ igt_main > s->flags); > } > > - igt_subtest("atomic-once") > - xe_for_each_hw_engine(fd, hwe) > - test_atomic(fd, hwe, 1, 0); > - > - igt_subtest("atomic-once-wait") > - xe_for_each_hw_engine(fd, hwe) > - test_atomic(fd, hwe, 1, WAIT_ATOMIC); > - > - igt_subtest("atomic-many") > - xe_for_each_hw_engine(fd, hwe) > - test_atomic(fd, hwe, 8, 0); > - > - igt_subtest("atomic-many-wait") > - xe_for_each_hw_engine(fd, hwe) > - test_atomic(fd, hwe, 8, WAIT_ATOMIC); > - > igt_fixture > drm_close_driver(fd); > } > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] [PATCH v1 4/7] drm-uapi/xe: Remove unused inaccessible memory region 2023-11-10 15:52 [igt-dev] [PATCH v1 0/7] uAPI Alignment - Remove unused features Francois Dugast ` (2 preceding siblings ...) 2023-11-10 15:52 ` [igt-dev] [PATCH v1 3/7] drm-uapi/xe: Kill VM_MADVISE IOCTL and the atomic tests Francois Dugast @ 2023-11-10 15:52 ` Francois Dugast 2023-11-13 20:38 ` Rodrigo Vivi 2023-11-10 15:52 ` [igt-dev] [PATCH v1 5/7] drm-uapi/xe: Remove unused QUERY_CONFIG_MEM_REGION_COUNT Francois Dugast ` (3 subsequent siblings) 7 siblings, 1 reply; 17+ messages in thread From: Francois Dugast @ 2023-11-10 15:52 UTC (permalink / raw) To: igt-dev Align with commit ("drm/xe/uapi: Remove unused inaccessible memory region") Signed-off-by: Francois Dugast <francois.dugast@intel.com> --- include/drm-uapi/xe_drm.h | 5 ----- tests/intel/xe_query.c | 2 -- 2 files changed, 7 deletions(-) diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h index 1d8dc1b9c..68317a82e 100644 --- a/include/drm-uapi/xe_drm.h +++ b/include/drm-uapi/xe_drm.h @@ -360,11 +360,6 @@ struct drm_xe_query_gt { * they live on a different GPU/Tile. */ __u64 slow_mem_regions; - /** - * @inaccessible_mem_regions: Bit mask of instances from - * drm_xe_query_mem_usage that is not accessible by this GT at all. - */ - __u64 inaccessible_mem_regions; /** @reserved: Reserved */ __u64 reserved[8]; }; diff --git a/tests/intel/xe_query.c b/tests/intel/xe_query.c index 2cff75414..e6258ff01 100644 --- a/tests/intel/xe_query.c +++ b/tests/intel/xe_query.c @@ -285,8 +285,6 @@ test_query_gt_list(int fd) gt_list->gt_list[i].native_mem_regions); igt_info("slow_mem_regions: 0x%016llx\n", gt_list->gt_list[i].slow_mem_regions); - igt_info("inaccessible_mem_regions: 0x%016llx\n", - gt_list->gt_list[i].inaccessible_mem_regions); } } -- 2.34.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [igt-dev] [PATCH v1 4/7] drm-uapi/xe: Remove unused inaccessible memory region 2023-11-10 15:52 ` [igt-dev] [PATCH v1 4/7] drm-uapi/xe: Remove unused inaccessible memory region Francois Dugast @ 2023-11-13 20:38 ` Rodrigo Vivi 0 siblings, 0 replies; 17+ messages in thread From: Rodrigo Vivi @ 2023-11-13 20:38 UTC (permalink / raw) To: Francois Dugast; +Cc: igt-dev On Fri, Nov 10, 2023 at 03:52:08PM +0000, Francois Dugast wrote: > Align with commit ("drm/xe/uapi: Remove unused inaccessible memory region") > > Signed-off-by: Francois Dugast <francois.dugast@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > --- > include/drm-uapi/xe_drm.h | 5 ----- > tests/intel/xe_query.c | 2 -- > 2 files changed, 7 deletions(-) > > diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h > index 1d8dc1b9c..68317a82e 100644 > --- a/include/drm-uapi/xe_drm.h > +++ b/include/drm-uapi/xe_drm.h > @@ -360,11 +360,6 @@ struct drm_xe_query_gt { > * they live on a different GPU/Tile. > */ > __u64 slow_mem_regions; > - /** > - * @inaccessible_mem_regions: Bit mask of instances from > - * drm_xe_query_mem_usage that is not accessible by this GT at all. > - */ > - __u64 inaccessible_mem_regions; > /** @reserved: Reserved */ > __u64 reserved[8]; > }; > diff --git a/tests/intel/xe_query.c b/tests/intel/xe_query.c > index 2cff75414..e6258ff01 100644 > --- a/tests/intel/xe_query.c > +++ b/tests/intel/xe_query.c > @@ -285,8 +285,6 @@ test_query_gt_list(int fd) > gt_list->gt_list[i].native_mem_regions); > igt_info("slow_mem_regions: 0x%016llx\n", > gt_list->gt_list[i].slow_mem_regions); > - igt_info("inaccessible_mem_regions: 0x%016llx\n", > - gt_list->gt_list[i].inaccessible_mem_regions); > } > } > > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] [PATCH v1 5/7] drm-uapi/xe: Remove unused QUERY_CONFIG_MEM_REGION_COUNT 2023-11-10 15:52 [igt-dev] [PATCH v1 0/7] uAPI Alignment - Remove unused features Francois Dugast ` (3 preceding siblings ...) 2023-11-10 15:52 ` [igt-dev] [PATCH v1 4/7] drm-uapi/xe: Remove unused inaccessible memory region Francois Dugast @ 2023-11-10 15:52 ` Francois Dugast 2023-11-13 15:26 ` Matthew Brost 2023-11-10 15:52 ` [igt-dev] [PATCH v1 6/7] drm-uapi/xe: Remove unused QUERY_CONFIG_GT_COUNT Francois Dugast ` (2 subsequent siblings) 7 siblings, 1 reply; 17+ messages in thread From: Francois Dugast @ 2023-11-10 15:52 UTC (permalink / raw) To: igt-dev Align with commit ("drm/xe/uapi: Remove unused QUERY_CONFIG_MEM_REGION_COUNT") Signed-off-by: Francois Dugast <francois.dugast@intel.com> --- include/drm-uapi/xe_drm.h | 4 ++-- tests/intel/xe_query.c | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h index 68317a82e..db883fb6b 100644 --- a/include/drm-uapi/xe_drm.h +++ b/include/drm-uapi/xe_drm.h @@ -311,6 +311,7 @@ struct drm_xe_query_mem_usage { * If a query is made with a struct drm_xe_device_query where .query * is equal to DRM_XE_DEVICE_QUERY_CONFIG, then the reply uses * struct drm_xe_query_config in .data. + * */ struct drm_xe_query_config { /** @num_params: number of parameters returned in info */ @@ -325,8 +326,7 @@ struct drm_xe_query_config { #define XE_QUERY_CONFIG_MIN_ALIGNMENT 2 #define XE_QUERY_CONFIG_VA_BITS 3 #define XE_QUERY_CONFIG_GT_COUNT 4 -#define XE_QUERY_CONFIG_MEM_REGION_COUNT 5 -#define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 6 +#define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 5 /** @info: array of elements containing the config info */ __u64 info[]; }; diff --git a/tests/intel/xe_query.c b/tests/intel/xe_query.c index e6258ff01..66a714518 100644 --- a/tests/intel/xe_query.c +++ b/tests/intel/xe_query.c @@ -376,8 +376,6 @@ test_query_config(int fd) config->info[XE_QUERY_CONFIG_VA_BITS]); igt_info("XE_QUERY_CONFIG_GT_COUNT\t\t%llu\n", config->info[XE_QUERY_CONFIG_GT_COUNT]); - igt_info("XE_QUERY_CONFIG_MEM_REGION_COUNT\t%llu\n", - config->info[XE_QUERY_CONFIG_MEM_REGION_COUNT]); igt_info("XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY\t%llu\n", config->info[XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY]); dump_hex_debug(config, query.size); -- 2.34.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [igt-dev] [PATCH v1 5/7] drm-uapi/xe: Remove unused QUERY_CONFIG_MEM_REGION_COUNT 2023-11-10 15:52 ` [igt-dev] [PATCH v1 5/7] drm-uapi/xe: Remove unused QUERY_CONFIG_MEM_REGION_COUNT Francois Dugast @ 2023-11-13 15:26 ` Matthew Brost 0 siblings, 0 replies; 17+ messages in thread From: Matthew Brost @ 2023-11-13 15:26 UTC (permalink / raw) To: Francois Dugast; +Cc: igt-dev On Fri, Nov 10, 2023 at 03:52:09PM +0000, Francois Dugast wrote: > Align with commit ("drm/xe/uapi: Remove unused QUERY_CONFIG_MEM_REGION_COUNT") > > Signed-off-by: Francois Dugast <francois.dugast@intel.com> Reviewed-by: Matthew Brost <matthew.brost@intel.com> > --- > include/drm-uapi/xe_drm.h | 4 ++-- > tests/intel/xe_query.c | 2 -- > 2 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h > index 68317a82e..db883fb6b 100644 > --- a/include/drm-uapi/xe_drm.h > +++ b/include/drm-uapi/xe_drm.h > @@ -311,6 +311,7 @@ struct drm_xe_query_mem_usage { > * If a query is made with a struct drm_xe_device_query where .query > * is equal to DRM_XE_DEVICE_QUERY_CONFIG, then the reply uses > * struct drm_xe_query_config in .data. > + * > */ > struct drm_xe_query_config { > /** @num_params: number of parameters returned in info */ > @@ -325,8 +326,7 @@ struct drm_xe_query_config { > #define XE_QUERY_CONFIG_MIN_ALIGNMENT 2 > #define XE_QUERY_CONFIG_VA_BITS 3 > #define XE_QUERY_CONFIG_GT_COUNT 4 > -#define XE_QUERY_CONFIG_MEM_REGION_COUNT 5 > -#define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 6 > +#define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 5 > /** @info: array of elements containing the config info */ > __u64 info[]; > }; > diff --git a/tests/intel/xe_query.c b/tests/intel/xe_query.c > index e6258ff01..66a714518 100644 > --- a/tests/intel/xe_query.c > +++ b/tests/intel/xe_query.c > @@ -376,8 +376,6 @@ test_query_config(int fd) > config->info[XE_QUERY_CONFIG_VA_BITS]); > igt_info("XE_QUERY_CONFIG_GT_COUNT\t\t%llu\n", > config->info[XE_QUERY_CONFIG_GT_COUNT]); > - igt_info("XE_QUERY_CONFIG_MEM_REGION_COUNT\t%llu\n", > - config->info[XE_QUERY_CONFIG_MEM_REGION_COUNT]); > igt_info("XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY\t%llu\n", > config->info[XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY]); > dump_hex_debug(config, query.size); > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] [PATCH v1 6/7] drm-uapi/xe: Remove unused QUERY_CONFIG_GT_COUNT 2023-11-10 15:52 [igt-dev] [PATCH v1 0/7] uAPI Alignment - Remove unused features Francois Dugast ` (4 preceding siblings ...) 2023-11-10 15:52 ` [igt-dev] [PATCH v1 5/7] drm-uapi/xe: Remove unused QUERY_CONFIG_MEM_REGION_COUNT Francois Dugast @ 2023-11-10 15:52 ` Francois Dugast 2023-11-13 20:39 ` Rodrigo Vivi 2023-11-10 15:52 ` [igt-dev] [PATCH v1 7/7] drm-uapi/xe: Drop interrupt pmu event Francois Dugast 2023-11-10 18:11 ` [igt-dev] ✗ CI.xeBAT: failure for uAPI Alignment - Remove unused features Patchwork 7 siblings, 1 reply; 17+ messages in thread From: Francois Dugast @ 2023-11-10 15:52 UTC (permalink / raw) To: igt-dev Align with commit ("drm/xe/uapi: Remove unused QUERY_CONFIG_GT_COUNT") Signed-off-by: Francois Dugast <francois.dugast@intel.com> --- include/drm-uapi/xe_drm.h | 3 +-- lib/xe/xe_query.c | 11 +++++------ lib/xe/xe_query.h | 3 --- tests/intel/xe_debugfs.c | 2 -- tests/intel/xe_query.c | 2 -- 5 files changed, 6 insertions(+), 15 deletions(-) diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h index db883fb6b..0f4c83e4c 100644 --- a/include/drm-uapi/xe_drm.h +++ b/include/drm-uapi/xe_drm.h @@ -325,8 +325,7 @@ struct drm_xe_query_config { #define XE_QUERY_CONFIG_FLAGS_HAS_VRAM (0x1 << 0) #define XE_QUERY_CONFIG_MIN_ALIGNMENT 2 #define XE_QUERY_CONFIG_VA_BITS 3 -#define XE_QUERY_CONFIG_GT_COUNT 4 -#define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 5 +#define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 4 /** @info: array of elements containing the config info */ __u64 info[]; }; diff --git a/lib/xe/xe_query.c b/lib/xe/xe_query.c index 986a3a0c1..06d216cf9 100644 --- a/lib/xe/xe_query.c +++ b/lib/xe/xe_query.c @@ -249,16 +249,15 @@ struct xe_device *xe_device_get(int fd) xe_dev->fd = fd; xe_dev->config = xe_query_config_new(fd); - xe_dev->number_gt = xe_dev->config->info[XE_QUERY_CONFIG_GT_COUNT]; xe_dev->va_bits = xe_dev->config->info[XE_QUERY_CONFIG_VA_BITS]; xe_dev->dev_id = xe_dev->config->info[XE_QUERY_CONFIG_REV_AND_DEVICE_ID] & 0xffff; xe_dev->gt_list = xe_query_gt_list_new(fd); xe_dev->memory_regions = __memory_regions(xe_dev->gt_list); xe_dev->hw_engines = xe_query_engines_new(fd, &xe_dev->number_hw_engines); xe_dev->mem_usage = xe_query_mem_usage_new(fd); - xe_dev->vram_size = calloc(xe_dev->number_gt, sizeof(*xe_dev->vram_size)); - xe_dev->visible_vram_size = calloc(xe_dev->number_gt, sizeof(*xe_dev->visible_vram_size)); - for (int gt = 0; gt < xe_dev->number_gt; gt++) { + xe_dev->vram_size = calloc(xe_dev->gt_list->num_gt, sizeof(*xe_dev->vram_size)); + xe_dev->visible_vram_size = calloc(xe_dev->gt_list->num_gt, sizeof(*xe_dev->visible_vram_size)); + for (int gt = 0; gt < xe_dev->gt_list->num_gt; gt++) { xe_dev->vram_size[gt] = gt_vram_size(xe_dev->mem_usage, xe_dev->gt_list, gt); xe_dev->visible_vram_size[gt] = @@ -358,7 +357,7 @@ _TYPE _NAME(int fd) \ * * Return number of gt_list for xe device fd. */ -xe_dev_FN(xe_number_gt, number_gt, unsigned int); +xe_dev_FN(xe_number_gt, gt_list->num_gt, unsigned int); /** * all_memory_regions: @@ -394,7 +393,7 @@ uint64_t vram_memory(int fd, int gt) xe_dev = find_in_cache(fd); igt_assert(xe_dev); - igt_assert(gt >= 0 && gt < xe_dev->number_gt); + igt_assert(gt >= 0 && gt < xe_dev->gt_list->num_gt); return xe_has_vram(fd) ? native_region_for_gt(xe_dev->gt_list, gt) : 0; } diff --git a/lib/xe/xe_query.h b/lib/xe/xe_query.h index 7c0849bc1..fc81cc263 100644 --- a/lib/xe/xe_query.h +++ b/lib/xe/xe_query.h @@ -27,9 +27,6 @@ struct xe_device { /** @gt_list: gt info */ struct drm_xe_query_gt_list *gt_list; - /** @number_gt: number of gt */ - unsigned int number_gt; - /** @gt_list: bitmask of all memory regions */ uint64_t memory_regions; diff --git a/tests/intel/xe_debugfs.c b/tests/intel/xe_debugfs.c index e5bbb364c..4104bf5ae 100644 --- a/tests/intel/xe_debugfs.c +++ b/tests/intel/xe_debugfs.c @@ -121,8 +121,6 @@ test_base(int fd, struct drm_xe_query_config *config) igt_assert(igt_debugfs_search(fd, "info", reference)); igt_assert(igt_debugfs_exists(fd, "gt0", O_RDONLY)); - if (config->info[XE_QUERY_CONFIG_GT_COUNT] > 1) - igt_assert(igt_debugfs_exists(fd, "gt1", O_RDONLY)); igt_assert(igt_debugfs_exists(fd, "gtt_mm", O_RDONLY)); igt_debugfs_dump(fd, "gtt_mm"); diff --git a/tests/intel/xe_query.c b/tests/intel/xe_query.c index 66a714518..cf966d40d 100644 --- a/tests/intel/xe_query.c +++ b/tests/intel/xe_query.c @@ -374,8 +374,6 @@ test_query_config(int fd) config->info[XE_QUERY_CONFIG_MIN_ALIGNMENT]); igt_info("XE_QUERY_CONFIG_VA_BITS\t\t\t%llu\n", config->info[XE_QUERY_CONFIG_VA_BITS]); - igt_info("XE_QUERY_CONFIG_GT_COUNT\t\t%llu\n", - config->info[XE_QUERY_CONFIG_GT_COUNT]); igt_info("XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY\t%llu\n", config->info[XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY]); dump_hex_debug(config, query.size); -- 2.34.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [igt-dev] [PATCH v1 6/7] drm-uapi/xe: Remove unused QUERY_CONFIG_GT_COUNT 2023-11-10 15:52 ` [igt-dev] [PATCH v1 6/7] drm-uapi/xe: Remove unused QUERY_CONFIG_GT_COUNT Francois Dugast @ 2023-11-13 20:39 ` Rodrigo Vivi 0 siblings, 0 replies; 17+ messages in thread From: Rodrigo Vivi @ 2023-11-13 20:39 UTC (permalink / raw) To: Francois Dugast; +Cc: igt-dev On Fri, Nov 10, 2023 at 03:52:10PM +0000, Francois Dugast wrote: > Align with commit ("drm/xe/uapi: Remove unused QUERY_CONFIG_GT_COUNT") > > Signed-off-by: Francois Dugast <francois.dugast@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > --- > include/drm-uapi/xe_drm.h | 3 +-- > lib/xe/xe_query.c | 11 +++++------ > lib/xe/xe_query.h | 3 --- > tests/intel/xe_debugfs.c | 2 -- > tests/intel/xe_query.c | 2 -- > 5 files changed, 6 insertions(+), 15 deletions(-) > > diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h > index db883fb6b..0f4c83e4c 100644 > --- a/include/drm-uapi/xe_drm.h > +++ b/include/drm-uapi/xe_drm.h > @@ -325,8 +325,7 @@ struct drm_xe_query_config { > #define XE_QUERY_CONFIG_FLAGS_HAS_VRAM (0x1 << 0) > #define XE_QUERY_CONFIG_MIN_ALIGNMENT 2 > #define XE_QUERY_CONFIG_VA_BITS 3 > -#define XE_QUERY_CONFIG_GT_COUNT 4 > -#define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 5 > +#define XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 4 > /** @info: array of elements containing the config info */ > __u64 info[]; > }; > diff --git a/lib/xe/xe_query.c b/lib/xe/xe_query.c > index 986a3a0c1..06d216cf9 100644 > --- a/lib/xe/xe_query.c > +++ b/lib/xe/xe_query.c > @@ -249,16 +249,15 @@ struct xe_device *xe_device_get(int fd) > > xe_dev->fd = fd; > xe_dev->config = xe_query_config_new(fd); > - xe_dev->number_gt = xe_dev->config->info[XE_QUERY_CONFIG_GT_COUNT]; > xe_dev->va_bits = xe_dev->config->info[XE_QUERY_CONFIG_VA_BITS]; > xe_dev->dev_id = xe_dev->config->info[XE_QUERY_CONFIG_REV_AND_DEVICE_ID] & 0xffff; > xe_dev->gt_list = xe_query_gt_list_new(fd); > xe_dev->memory_regions = __memory_regions(xe_dev->gt_list); > xe_dev->hw_engines = xe_query_engines_new(fd, &xe_dev->number_hw_engines); > xe_dev->mem_usage = xe_query_mem_usage_new(fd); > - xe_dev->vram_size = calloc(xe_dev->number_gt, sizeof(*xe_dev->vram_size)); > - xe_dev->visible_vram_size = calloc(xe_dev->number_gt, sizeof(*xe_dev->visible_vram_size)); > - for (int gt = 0; gt < xe_dev->number_gt; gt++) { > + xe_dev->vram_size = calloc(xe_dev->gt_list->num_gt, sizeof(*xe_dev->vram_size)); > + xe_dev->visible_vram_size = calloc(xe_dev->gt_list->num_gt, sizeof(*xe_dev->visible_vram_size)); > + for (int gt = 0; gt < xe_dev->gt_list->num_gt; gt++) { > xe_dev->vram_size[gt] = gt_vram_size(xe_dev->mem_usage, > xe_dev->gt_list, gt); > xe_dev->visible_vram_size[gt] = > @@ -358,7 +357,7 @@ _TYPE _NAME(int fd) \ > * > * Return number of gt_list for xe device fd. > */ > -xe_dev_FN(xe_number_gt, number_gt, unsigned int); > +xe_dev_FN(xe_number_gt, gt_list->num_gt, unsigned int); > > /** > * all_memory_regions: > @@ -394,7 +393,7 @@ uint64_t vram_memory(int fd, int gt) > > xe_dev = find_in_cache(fd); > igt_assert(xe_dev); > - igt_assert(gt >= 0 && gt < xe_dev->number_gt); > + igt_assert(gt >= 0 && gt < xe_dev->gt_list->num_gt); > > return xe_has_vram(fd) ? native_region_for_gt(xe_dev->gt_list, gt) : 0; > } > diff --git a/lib/xe/xe_query.h b/lib/xe/xe_query.h > index 7c0849bc1..fc81cc263 100644 > --- a/lib/xe/xe_query.h > +++ b/lib/xe/xe_query.h > @@ -27,9 +27,6 @@ struct xe_device { > /** @gt_list: gt info */ > struct drm_xe_query_gt_list *gt_list; > > - /** @number_gt: number of gt */ > - unsigned int number_gt; > - > /** @gt_list: bitmask of all memory regions */ > uint64_t memory_regions; > > diff --git a/tests/intel/xe_debugfs.c b/tests/intel/xe_debugfs.c > index e5bbb364c..4104bf5ae 100644 > --- a/tests/intel/xe_debugfs.c > +++ b/tests/intel/xe_debugfs.c > @@ -121,8 +121,6 @@ test_base(int fd, struct drm_xe_query_config *config) > igt_assert(igt_debugfs_search(fd, "info", reference)); > > igt_assert(igt_debugfs_exists(fd, "gt0", O_RDONLY)); > - if (config->info[XE_QUERY_CONFIG_GT_COUNT] > 1) > - igt_assert(igt_debugfs_exists(fd, "gt1", O_RDONLY)); > > igt_assert(igt_debugfs_exists(fd, "gtt_mm", O_RDONLY)); > igt_debugfs_dump(fd, "gtt_mm"); > diff --git a/tests/intel/xe_query.c b/tests/intel/xe_query.c > index 66a714518..cf966d40d 100644 > --- a/tests/intel/xe_query.c > +++ b/tests/intel/xe_query.c > @@ -374,8 +374,6 @@ test_query_config(int fd) > config->info[XE_QUERY_CONFIG_MIN_ALIGNMENT]); > igt_info("XE_QUERY_CONFIG_VA_BITS\t\t\t%llu\n", > config->info[XE_QUERY_CONFIG_VA_BITS]); > - igt_info("XE_QUERY_CONFIG_GT_COUNT\t\t%llu\n", > - config->info[XE_QUERY_CONFIG_GT_COUNT]); > igt_info("XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY\t%llu\n", > config->info[XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY]); > dump_hex_debug(config, query.size); > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] [PATCH v1 7/7] drm-uapi/xe: Drop interrupt pmu event 2023-11-10 15:52 [igt-dev] [PATCH v1 0/7] uAPI Alignment - Remove unused features Francois Dugast ` (5 preceding siblings ...) 2023-11-10 15:52 ` [igt-dev] [PATCH v1 6/7] drm-uapi/xe: Remove unused QUERY_CONFIG_GT_COUNT Francois Dugast @ 2023-11-10 15:52 ` Francois Dugast 2023-11-13 20:40 ` Rodrigo Vivi 2023-11-10 18:11 ` [igt-dev] ✗ CI.xeBAT: failure for uAPI Alignment - Remove unused features Patchwork 7 siblings, 1 reply; 17+ messages in thread From: Francois Dugast @ 2023-11-10 15:52 UTC (permalink / raw) To: igt-dev Align with kernel commit ("drm/xe/pmu: Drop interrupt pmu event") Signed-off-by: Francois Dugast <francois.dugast@intel.com> --- include/drm-uapi/xe_drm.h | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h index 0f4c83e4c..babfaf0fe 100644 --- a/include/drm-uapi/xe_drm.h +++ b/include/drm-uapi/xe_drm.h @@ -977,7 +977,7 @@ struct drm_xe_wait_user_fence { * in 'struct perf_event_attr' as part of perf_event_open syscall to read a * particular event. * - * For example to open the XE_PMU_INTERRUPTS(0): + * For example to open the XE_PMU_RENDER_GROUP_BUSY(0): * * .. code-block:: C * @@ -991,7 +991,7 @@ struct drm_xe_wait_user_fence { * attr.read_format = PERF_FORMAT_TOTAL_TIME_ENABLED; * attr.use_clockid = 1; * attr.clockid = CLOCK_MONOTONIC; - * attr.config = XE_PMU_INTERRUPTS(0); + * attr.config = XE_PMU_RENDER_GROUP_BUSY(0); * * fd = syscall(__NR_perf_event_open, &attr, -1, cpu, -1, 0); */ @@ -1004,11 +1004,10 @@ struct drm_xe_wait_user_fence { #define ___XE_PMU_OTHER(gt, x) \ (((__u64)(x)) | ((__u64)(gt) << __XE_PMU_GT_SHIFT)) -#define XE_PMU_INTERRUPTS(gt) ___XE_PMU_OTHER(gt, 0) -#define XE_PMU_RENDER_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 1) -#define XE_PMU_COPY_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 2) -#define XE_PMU_MEDIA_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 3) -#define XE_PMU_ANY_ENGINE_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 4) +#define XE_PMU_RENDER_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 0) +#define XE_PMU_COPY_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 1) +#define XE_PMU_MEDIA_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 2) +#define XE_PMU_ANY_ENGINE_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 3) #if defined(__cplusplus) } -- 2.34.1 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [igt-dev] [PATCH v1 7/7] drm-uapi/xe: Drop interrupt pmu event 2023-11-10 15:52 ` [igt-dev] [PATCH v1 7/7] drm-uapi/xe: Drop interrupt pmu event Francois Dugast @ 2023-11-13 20:40 ` Rodrigo Vivi 0 siblings, 0 replies; 17+ messages in thread From: Rodrigo Vivi @ 2023-11-13 20:40 UTC (permalink / raw) To: Francois Dugast; +Cc: igt-dev On Fri, Nov 10, 2023 at 03:52:11PM +0000, Francois Dugast wrote: > Align with kernel commit ("drm/xe/pmu: Drop interrupt pmu event") > > Signed-off-by: Francois Dugast <francois.dugast@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> > --- > include/drm-uapi/xe_drm.h | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/include/drm-uapi/xe_drm.h b/include/drm-uapi/xe_drm.h > index 0f4c83e4c..babfaf0fe 100644 > --- a/include/drm-uapi/xe_drm.h > +++ b/include/drm-uapi/xe_drm.h > @@ -977,7 +977,7 @@ struct drm_xe_wait_user_fence { > * in 'struct perf_event_attr' as part of perf_event_open syscall to read a > * particular event. > * > - * For example to open the XE_PMU_INTERRUPTS(0): > + * For example to open the XE_PMU_RENDER_GROUP_BUSY(0): > * > * .. code-block:: C > * > @@ -991,7 +991,7 @@ struct drm_xe_wait_user_fence { > * attr.read_format = PERF_FORMAT_TOTAL_TIME_ENABLED; > * attr.use_clockid = 1; > * attr.clockid = CLOCK_MONOTONIC; > - * attr.config = XE_PMU_INTERRUPTS(0); > + * attr.config = XE_PMU_RENDER_GROUP_BUSY(0); > * > * fd = syscall(__NR_perf_event_open, &attr, -1, cpu, -1, 0); > */ > @@ -1004,11 +1004,10 @@ struct drm_xe_wait_user_fence { > #define ___XE_PMU_OTHER(gt, x) \ > (((__u64)(x)) | ((__u64)(gt) << __XE_PMU_GT_SHIFT)) > > -#define XE_PMU_INTERRUPTS(gt) ___XE_PMU_OTHER(gt, 0) > -#define XE_PMU_RENDER_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 1) > -#define XE_PMU_COPY_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 2) > -#define XE_PMU_MEDIA_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 3) > -#define XE_PMU_ANY_ENGINE_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 4) > +#define XE_PMU_RENDER_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 0) > +#define XE_PMU_COPY_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 1) > +#define XE_PMU_MEDIA_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 2) > +#define XE_PMU_ANY_ENGINE_GROUP_BUSY(gt) ___XE_PMU_OTHER(gt, 3) > > #if defined(__cplusplus) > } > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 17+ messages in thread
* [igt-dev] ✗ CI.xeBAT: failure for uAPI Alignment - Remove unused features 2023-11-10 15:52 [igt-dev] [PATCH v1 0/7] uAPI Alignment - Remove unused features Francois Dugast ` (6 preceding siblings ...) 2023-11-10 15:52 ` [igt-dev] [PATCH v1 7/7] drm-uapi/xe: Drop interrupt pmu event Francois Dugast @ 2023-11-10 18:11 ` Patchwork 7 siblings, 0 replies; 17+ messages in thread From: Patchwork @ 2023-11-10 18:11 UTC (permalink / raw) To: Francois Dugast; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 6402 bytes --] == Series Details == Series: uAPI Alignment - Remove unused features URL : https://patchwork.freedesktop.org/series/126279/ State : failure == Summary == CI Bug Log - changes from XEIGT_7582_BAT -> XEIGTPW_10165_BAT ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with XEIGTPW_10165_BAT absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in XEIGTPW_10165_BAT, please notify your bug team (lgci.bug.filing@intel.com) to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (3 -> 3) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in XEIGTPW_10165_BAT: ### IGT changes ### #### Possible regressions #### * igt@xe_exec_compute_mode@twice-userptr-invalidate: - bat-atsm-2: [PASS][1] -> [FAIL][2] +100 other tests fail [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-atsm-2/igt@xe_exec_compute_mode@twice-userptr-invalidate.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-atsm-2/igt@xe_exec_compute_mode@twice-userptr-invalidate.html * igt@xe_intel_bb@create-in-region: - bat-dg2-oem2: [PASS][3] -> [FAIL][4] +158 other tests fail [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-dg2-oem2/igt@xe_intel_bb@create-in-region.html [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-dg2-oem2/igt@xe_intel_bb@create-in-region.html - bat-adlp-7: [PASS][5] -> [FAIL][6] +130 other tests fail [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-adlp-7/igt@xe_intel_bb@create-in-region.html [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-adlp-7/igt@xe_intel_bb@create-in-region.html #### Warnings #### * igt@kms_frontbuffer_tracking@basic: - bat-adlp-7: [FAIL][7] ([Intel XE#616] / [Intel XE#750]) -> [FAIL][8] [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12: - bat-dg2-oem2: [FAIL][9] ([Intel XE#400] / [Intel XE#616]) -> [FAIL][10] +2 other tests fail [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@xe_create@create-execqueues-leak}: - bat-atsm-2: [PASS][11] -> [WARN][12] [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-atsm-2/igt@xe_create@create-execqueues-leak.html [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-atsm-2/igt@xe_create@create-execqueues-leak.html - bat-adlp-7: [PASS][13] -> [WARN][14] [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-adlp-7/igt@xe_create@create-execqueues-leak.html [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-adlp-7/igt@xe_create@create-execqueues-leak.html * {igt@xe_create@create-execqueues-noleak}: - bat-adlp-7: [FAIL][15] ([Intel XE#524]) -> [WARN][16] [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-adlp-7/igt@xe_create@create-execqueues-noleak.html [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-adlp-7/igt@xe_create@create-execqueues-noleak.html - bat-dg2-oem2: [PASS][17] -> [WARN][18] +1 other test warn [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-dg2-oem2/igt@xe_create@create-execqueues-noleak.html [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-dg2-oem2/igt@xe_create@create-execqueues-noleak.html - bat-atsm-2: [FAIL][19] ([Intel XE#524]) -> [WARN][20] [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-atsm-2/igt@xe_create@create-execqueues-noleak.html [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-atsm-2/igt@xe_create@create-execqueues-noleak.html * {igt@xe_exec_basic@no-exec-bindexecqueue}: - bat-dg2-oem2: [PASS][21] -> [FAIL][22] +13 other tests fail [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-dg2-oem2/igt@xe_exec_basic@no-exec-bindexecqueue.html [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-dg2-oem2/igt@xe_exec_basic@no-exec-bindexecqueue.html * {igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-rebind}: - bat-atsm-2: [PASS][23] -> [FAIL][24] +13 other tests fail [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-atsm-2/igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-rebind.html [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-atsm-2/igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-rebind.html * {igt@xe_vm@bind-execqueues-independent}: - bat-adlp-7: [PASS][25] -> [FAIL][26] +11 other tests fail [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7582/bat-adlp-7/igt@xe_vm@bind-execqueues-independent.html [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/bat-adlp-7/igt@xe_vm@bind-execqueues-independent.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [Intel XE#400]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/400 [Intel XE#524]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/524 [Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616 [Intel XE#750]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/750 Build changes ------------- * IGT: IGT_7582 -> IGTPW_10165 IGTPW_10165: 10165 IGT_7582: 453b9df12fbc9fff561bdb4eb97992983e74c3d4 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-485-b3890fb4386dcef68a96888141c4cc773f6241ce: b3890fb4386dcef68a96888141c4cc773f6241ce == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10165/index.html [-- Attachment #2: Type: text/html, Size: 7454 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2023-11-14 15:07 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-11-10 15:52 [igt-dev] [PATCH v1 0/7] uAPI Alignment - Remove unused features Francois Dugast 2023-11-10 15:52 ` [igt-dev] [PATCH v1 1/7] drm-uapi/xe: Remove useless XE_QUERY_CONFIG_NUM_PARAM Francois Dugast 2023-11-13 20:36 ` Rodrigo Vivi 2023-11-10 15:52 ` [igt-dev] [PATCH v1 2/7] drm-uapi/xe: Remove GT_TYPE_REMOTE Francois Dugast 2023-11-13 15:22 ` Matthew Brost 2023-11-14 15:06 ` Kamil Konieczny 2023-11-10 15:52 ` [igt-dev] [PATCH v1 3/7] drm-uapi/xe: Kill VM_MADVISE IOCTL and the atomic tests Francois Dugast 2023-11-13 15:38 ` Matthew Brost 2023-11-10 15:52 ` [igt-dev] [PATCH v1 4/7] drm-uapi/xe: Remove unused inaccessible memory region Francois Dugast 2023-11-13 20:38 ` Rodrigo Vivi 2023-11-10 15:52 ` [igt-dev] [PATCH v1 5/7] drm-uapi/xe: Remove unused QUERY_CONFIG_MEM_REGION_COUNT Francois Dugast 2023-11-13 15:26 ` Matthew Brost 2023-11-10 15:52 ` [igt-dev] [PATCH v1 6/7] drm-uapi/xe: Remove unused QUERY_CONFIG_GT_COUNT Francois Dugast 2023-11-13 20:39 ` Rodrigo Vivi 2023-11-10 15:52 ` [igt-dev] [PATCH v1 7/7] drm-uapi/xe: Drop interrupt pmu event Francois Dugast 2023-11-13 20:40 ` Rodrigo Vivi 2023-11-10 18:11 ` [igt-dev] ✗ CI.xeBAT: failure for uAPI Alignment - Remove unused features Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox