* [igt-dev] [PATCH i-g-t 1/2] xe_pm: Kill display for PM tests
@ 2023-03-28 12:40 Maarten Lankhorst
2023-03-28 12:40 ` [igt-dev] [PATCH i-g-t 2/2] tests/xe: Prepare for widening drm_xe_sync.handle to 64-bits Maarten Lankhorst
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Maarten Lankhorst @ 2023-03-28 12:40 UTC (permalink / raw)
To: igt-dev
Display keeps PM alive, do the minimal initialization to disable
display for the PM tests entirely.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
tests/xe/xe_pm.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/tests/xe/xe_pm.c b/tests/xe/xe_pm.c
index 23b8246ed..861f6b915 100644
--- a/tests/xe/xe_pm.c
+++ b/tests/xe/xe_pm.c
@@ -365,6 +365,8 @@ igt_main
};
igt_fixture {
+ drmModeResPtr res;
+
memset(&device, 0, sizeof(device));
device.fd_xe = drm_open_driver(DRIVER_XE);
device.pci_xe = igt_device_get_pci_device(device.fd_xe);
@@ -376,6 +378,17 @@ igt_main
xe_for_each_hw_engine(device.fd_xe, hwe)
test_exec(device, hwe, 1, 1, NO_SUSPEND, NO_RPM);
+ /* Kill display, if it exists */
+ res = drmModeGetResources(device.fd_xe);
+ if (res) {
+ igt_display_t display;
+
+ drmModeFreeResources(res);
+ igt_display_require(&display, device.fd_xe);
+ igt_display_commit2(&display, COMMIT_ATOMIC);
+ igt_display_fini(&display);
+ }
+
get_d3cold_allowed(device.pci_xe, d3cold_allowed);
igt_assert(igt_setup_runtime_pm(device.fd_xe));
}
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] tests/xe: Prepare for widening drm_xe_sync.handle to 64-bits
2023-03-28 12:40 [igt-dev] [PATCH i-g-t 1/2] xe_pm: Kill display for PM tests Maarten Lankhorst
@ 2023-03-28 12:40 ` Maarten Lankhorst
2023-04-03 5:58 ` Zbigniew Kempczyński
2023-03-28 13:27 ` [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests Patchwork
` (4 subsequent siblings)
5 siblings, 1 reply; 9+ messages in thread
From: Maarten Lankhorst @ 2023-03-28 12:40 UTC (permalink / raw)
To: igt-dev
By not using a pointer to drm_xe_sync.handle, but taking the value, it
becomes safer when we change the word size to 64-bits. This is required
to make drm_xe_sync.handle safe on big-endian, and to explicitly set
the high 32-bits to 0.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
lib/igt_syncobj.c | 14 +++++++
lib/igt_syncobj.h | 4 ++
lib/xe/xe_ioctl.c | 4 +-
tests/xe/xe_compute.c | 4 +-
tests/xe/xe_dma_buf_sync.c | 7 ++--
tests/xe/xe_evict.c | 4 +-
tests/xe/xe_exec_balancer.c | 8 ++--
tests/xe/xe_exec_basic.c | 6 +--
tests/xe/xe_exec_reset.c | 19 +++++----
tests/xe/xe_exec_threads.c | 20 ++++-----
tests/xe/xe_guc_pc.c | 4 +-
tests/xe/xe_huc_copy.c | 4 +-
tests/xe/xe_pm.c | 8 ++--
tests/xe/xe_vm.c | 81 +++++++++++++++++--------------------
14 files changed, 96 insertions(+), 91 deletions(-)
diff --git a/lib/igt_syncobj.c b/lib/igt_syncobj.c
index a24ed10b7..95cad585e 100644
--- a/lib/igt_syncobj.c
+++ b/lib/igt_syncobj.c
@@ -248,6 +248,14 @@ syncobj_wait(int fd, uint32_t *handles, uint32_t count,
return true;
}
+bool
+syncobj_wait1(int fd, uint32_t handle,
+ uint64_t abs_timeout_nsec, uint32_t flags,
+ uint32_t *first_signaled)
+{
+ return syncobj_wait(fd, &handle, 1, abs_timeout_nsec, flags, first_signaled);
+}
+
static int
__syncobj_reset(int fd, uint32_t *handles, uint32_t count)
{
@@ -278,6 +286,12 @@ syncobj_reset(int fd, uint32_t *handles, uint32_t count)
igt_assert_eq(__syncobj_reset(fd, handles, count), 0);
}
+void
+syncobj_reset1(int fd, uint32_t handle)
+{
+ syncobj_reset(fd, &handle, 1);
+}
+
static int
__syncobj_signal(int fd, uint32_t *handles, uint32_t count)
{
diff --git a/lib/igt_syncobj.h b/lib/igt_syncobj.h
index e6725671d..6d6d08cbd 100644
--- a/lib/igt_syncobj.h
+++ b/lib/igt_syncobj.h
@@ -41,6 +41,9 @@ int syncobj_wait_err(int fd, uint32_t *handles, uint32_t count,
bool syncobj_wait(int fd, uint32_t *handles, uint32_t count,
uint64_t abs_timeout_nsec, uint32_t flags,
uint32_t *first_signaled);
+bool syncobj_wait1(int fd, __u32 handle,
+ uint64_t abs_timeout_nsec, uint32_t flags,
+ uint32_t *first_signaled);
int __syncobj_timeline_wait_ioctl(int fd,
struct drm_syncobj_timeline_wait *args);
bool syncobj_timeline_wait(int fd, uint32_t *handles, uint64_t *points,
@@ -51,6 +54,7 @@ int syncobj_timeline_wait_err(int fd, uint32_t *handles, uint64_t *points,
unsigned num_handles,
int64_t timeout_nsec, unsigned flags);
void syncobj_reset(int fd, uint32_t *handles, uint32_t count);
+void syncobj_reset1(int fd, uint32_t handle);
void syncobj_signal(int fd, uint32_t *handles, uint32_t count);
void syncobj_timeline_query(int fd, uint32_t *handles, uint64_t *points,
uint32_t count);
diff --git a/lib/xe/xe_ioctl.c b/lib/xe/xe_ioctl.c
index 9d5793dff..62da03c7d 100644
--- a/lib/xe/xe_ioctl.c
+++ b/lib/xe/xe_ioctl.c
@@ -207,7 +207,7 @@ static void __xe_vm_bind_sync(int fd, uint32_t vm, uint32_t bo, uint64_t offset,
__xe_vm_bind_assert(fd, vm, 0, bo, offset, addr, size, op, &sync, 1, 0,
0);
- igt_assert(syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL));
syncobj_destroy(fd, sync.handle);
}
@@ -386,7 +386,7 @@ void xe_exec_wait(int fd, uint32_t engine, uint64_t addr)
xe_exec_sync(fd, engine, addr, &sync, 1);
- igt_assert(syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL));
syncobj_destroy(fd, sync.handle);
}
diff --git a/tests/xe/xe_compute.c b/tests/xe/xe_compute.c
index 138d80671..d72391a6e 100644
--- a/tests/xe/xe_compute.c
+++ b/tests/xe/xe_compute.c
@@ -75,7 +75,7 @@ test_compute_square(int fd)
for(int i = 0; i < BO_DICT_ENTRIES; i++) {
bo_dict[i].data = aligned_alloc(xe_get_default_alignment(fd), bo_dict[i].size);
xe_vm_bind_userptr_async(fd, vm, 0, to_user_pointer(bo_dict[i].data), bo_dict[i].addr, bo_dict[i].size, &sync, 1);
- syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL);
+ syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL);
memset(bo_dict[i].data, 0, bo_dict[i].size);
}
memcpy(bo_dict[0].data, tgllp_kernel_square_bin, tgllp_kernel_square_length);
@@ -96,7 +96,7 @@ test_compute_square(int fd)
for(int i = 0; i < BO_DICT_ENTRIES; i++) {
xe_vm_unbind_async(fd, vm, 0, 0, bo_dict[i].addr, bo_dict[i].size, &sync, 1);
- syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL);
+ syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL);
free(bo_dict[i].data);
}
diff --git a/tests/xe/xe_dma_buf_sync.c b/tests/xe/xe_dma_buf_sync.c
index 8b97480a7..91fc54adb 100644
--- a/tests/xe/xe_dma_buf_sync.c
+++ b/tests/xe/xe_dma_buf_sync.c
@@ -195,14 +195,13 @@ test_export_dma_buf(struct drm_xe_engine_class_instance *hwe0,
/* Verify exec blocked on spinner / prime BO */
usleep(5000);
- igt_assert(!syncobj_wait(fd[1], &sync[1].handle, 1, 1, 0,
- NULL));
+ igt_assert(!syncobj_wait1(fd[1], sync[1].handle, 1, 0, NULL));
igt_assert_eq(data[i]->data, 0x0);
/* End spinner and verify exec complete */
xe_spin_end(&data[i]->spin);
- igt_assert(syncobj_wait(fd[1], &sync[1].handle, 1, INT64_MAX,
- 0, NULL));
+ igt_assert(syncobj_wait1(fd[1], sync[1].handle, INT64_MAX, 0,
+ NULL));
igt_assert_eq(data[i]->data, 0xc0ffee);
/* Clean up */
diff --git a/tests/xe/xe_evict.c b/tests/xe/xe_evict.c
index eddbbd6f4..79d018c30 100644
--- a/tests/xe/xe_evict.c
+++ b/tests/xe/xe_evict.c
@@ -124,7 +124,7 @@ test_evict(int fd, struct drm_xe_engine_class_instance *eci,
xe_vm_bind_async(fd, vm3, bind_engines[2], __bo,
0, addr,
bo_size, sync, 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1,
+ igt_assert(syncobj_wait1(fd, sync[0].handle,
INT64_MAX, 0, NULL));
xe_vm_bind_async(fd, i & 1 ? vm2 : vm,
i & 1 ? bind_engines[1] :
@@ -168,7 +168,7 @@ test_evict(int fd, struct drm_xe_engine_class_instance *eci,
for (i = 0; i < n_engines; i++)
igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
NULL));
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
for (i = 0; i < n_execs; i++) {
uint32_t __bo;
diff --git a/tests/xe/xe_exec_balancer.c b/tests/xe/xe_exec_balancer.c
index f3341a99e..03ab83330 100644
--- a/tests/xe/xe_exec_balancer.c
+++ b/tests/xe/xe_exec_balancer.c
@@ -110,11 +110,11 @@ static void test_all_active(int fd, int gt, int class)
igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
NULL));
}
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
syncobj_destroy(fd, sync[0].handle);
for (i = 0; i < num_placements; i++) {
@@ -332,11 +332,11 @@ test_exec(int fd, int gt, int class, int n_engines, int n_execs,
for (i = 0; i < n_engines && n_execs; i++)
igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
NULL));
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
for (i = (flags & INVALIDATE && n_execs) ? n_execs - 1 : 0;
i < n_execs; i++)
diff --git a/tests/xe/xe_exec_basic.c b/tests/xe/xe_exec_basic.c
index 2a3cebd36..3a4ca55b7 100644
--- a/tests/xe/xe_exec_basic.c
+++ b/tests/xe/xe_exec_basic.c
@@ -254,11 +254,11 @@ test_exec(int fd, struct drm_xe_engine_class_instance *eci,
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
for (i = 0; i < n_vm; ++i) {
- syncobj_reset(fd, &sync[0].handle, 1);
+ syncobj_reset1(fd, sync[0].handle);
xe_vm_unbind_async(fd, vm[i], bind_engines[i], 0, addr[i],
bo_size, sync, 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1,
- INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0,
+ NULL));
}
for (i = (flags & INVALIDATE && n_execs) ? n_execs - 1 : 0;
diff --git a/tests/xe/xe_exec_reset.c b/tests/xe/xe_exec_reset.c
index 57dc90dd0..2ae1a51ad 100644
--- a/tests/xe/xe_exec_reset.c
+++ b/tests/xe/xe_exec_reset.c
@@ -72,15 +72,15 @@ static void test_spin(int fd, struct drm_xe_engine_class_instance *eci)
xe_spin_wait_started(spin);
usleep(50000);
- igt_assert(!syncobj_wait(fd, &syncobj, 1, 1, 0, NULL));
+ igt_assert(!syncobj_wait1(fd, syncobj, 1, 0, NULL));
xe_spin_end(spin);
- igt_assert(syncobj_wait(fd, &syncobj, 1, INT64_MAX, 0, NULL));
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, syncobj, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
syncobj_destroy(fd, sync[0].handle);
syncobj_destroy(fd, syncobj);
@@ -301,13 +301,12 @@ test_balancer(int fd, int gt, int class, int n_engines, int n_execs,
}
for (i = 0; i < n_engines && n_execs; i++)
- igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
- NULL));
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
for (i = bad_batches; i < n_execs; i++)
igt_assert_eq(data[i].data, 0xc0ffee);
@@ -484,11 +483,11 @@ test_legacy_mode(int fd, struct drm_xe_engine_class_instance *eci,
for (i = 0; i < n_engines && n_execs; i++)
igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
NULL));
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
for (i = 1; i < n_execs; i++)
igt_assert_eq(data[i].data, 0xc0ffee);
diff --git a/tests/xe/xe_exec_threads.c b/tests/xe/xe_exec_threads.c
index c34d8aec6..9b3ca51aa 100644
--- a/tests/xe/xe_exec_threads.c
+++ b/tests/xe/xe_exec_threads.c
@@ -194,8 +194,7 @@ test_balancer(int fd, int gt, uint32_t vm, uint64_t addr, uint64_t userptr,
* an invalidate.
*/
for (j = 0; j < n_engines; ++j)
- igt_assert(syncobj_wait(fd,
- &syncobjs[j], 1,
+ igt_assert(syncobj_wait1(fd, syncobjs[j],
INT64_MAX, 0,
NULL));
igt_assert_eq(data[i].data, 0xc0ffee);
@@ -217,13 +216,12 @@ test_balancer(int fd, int gt, uint32_t vm, uint64_t addr, uint64_t userptr,
}
for (i = 0; i < n_engines; i++)
- igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
- NULL));
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
for (i = (flags & INVALIDATE && n_execs) ? n_execs - 1 : 0;
i < n_execs; i++)
@@ -637,8 +635,7 @@ test_legacy_mode(int fd, uint32_t vm, uint64_t addr, uint64_t userptr,
* an invalidate.
*/
for (j = 0; j < n_engines; ++j)
- igt_assert(syncobj_wait(fd,
- &syncobjs[j], 1,
+ igt_assert(syncobj_wait1(fd, syncobjs[j],
INT64_MAX, 0,
NULL));
if (!(flags & HANG && e == hang_engine))
@@ -661,14 +658,13 @@ test_legacy_mode(int fd, uint32_t vm, uint64_t addr, uint64_t userptr,
}
for (i = 0; i < n_engines; i++)
- igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
- NULL));
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
xe_vm_unbind_async(fd, vm, bind_engines[0], 0, addr,
bo_size, sync, 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
for (i = flags & INVALIDATE ? n_execs - 1 : 0;
i < n_execs; i++) {
diff --git a/tests/xe/xe_guc_pc.c b/tests/xe/xe_guc_pc.c
index 60c93288b..e87f996cc 100644
--- a/tests/xe/xe_guc_pc.c
+++ b/tests/xe/xe_guc_pc.c
@@ -110,12 +110,12 @@ static void exec_basic(int fd, struct drm_xe_engine_class_instance *eci,
igt_assert_eq(data[i].data, 0xc0ffee);
}
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
xe_vm_unbind_async(fd, vm, bind_engines[0], 0, addr,
bo_size, sync, 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
for (i = 0; i < n_execs; i++)
igt_assert_eq(data[i].data, 0xc0ffee);
diff --git a/tests/xe/xe_huc_copy.c b/tests/xe/xe_huc_copy.c
index ee3896cef..0292e7c64 100644
--- a/tests/xe/xe_huc_copy.c
+++ b/tests/xe/xe_huc_copy.c
@@ -126,7 +126,7 @@ test_huc_copy(int fd)
for(int i = 0; i < BO_DICT_ENTRIES; i++) {
bo_dict[i].data = aligned_alloc(xe_get_default_alignment(fd), bo_dict[i].size);
xe_vm_bind_userptr_async(fd, vm, 0, to_user_pointer(bo_dict[i].data), bo_dict[i].addr, bo_dict[i].size, &sync, 1);
- syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL);
+ syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL);
memset(bo_dict[i].data, 0, bo_dict[i].size);
}
dinput = (char *)bo_dict[0].data;
@@ -143,7 +143,7 @@ test_huc_copy(int fd)
for(int i = 0; i < BO_DICT_ENTRIES; i++) {
xe_vm_unbind_async(fd, vm, 0, 0, bo_dict[i].addr, bo_dict[i].size, &sync, 1);
- syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL);
+ syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL);
free(bo_dict[i].data);
}
diff --git a/tests/xe/xe_pm.c b/tests/xe/xe_pm.c
index 861f6b915..1af453212 100644
--- a/tests/xe/xe_pm.c
+++ b/tests/xe/xe_pm.c
@@ -303,8 +303,8 @@ test_exec(device_t device, struct drm_xe_engine_class_instance *eci,
SUSPEND_TEST_NONE);
}
- igt_assert(syncobj_wait(device.fd_xe, &sync[0].handle, 1, INT64_MAX, 0,
- NULL));
+ igt_assert(syncobj_wait1(device.fd_xe, sync[0].handle, INT64_MAX, 0,
+ NULL));
if (check_rpm && runtime_usage_available(device.pci_xe))
rpm_usage = igt_pm_get_runtime_usage(device.pci_xe);
@@ -312,8 +312,8 @@ test_exec(device_t device, struct drm_xe_engine_class_instance *eci,
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
xe_vm_unbind_async(device.fd_xe, vm, bind_engines[0], 0, addr,
bo_size, sync, 1);
- igt_assert(syncobj_wait(device.fd_xe, &sync[0].handle, 1, INT64_MAX, 0,
-NULL));
+ igt_assert(syncobj_wait1(device.fd_xe, sync[0].handle, INT64_MAX, 0,
+ NULL));
for (i = 0; i < n_execs; i++)
igt_assert_eq(data[i].data, 0xc0ffee);
diff --git a/tests/xe/xe_vm.c b/tests/xe/xe_vm.c
index 15356c704..a427014a5 100644
--- a/tests/xe/xe_vm.c
+++ b/tests/xe/xe_vm.c
@@ -285,7 +285,7 @@ static void unbind_all(int fd, int n_vmas)
sync[0].handle = syncobj_create(fd, 0);
xe_vm_unbind_all_async(fd, vm, 0, bo, sync, 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
syncobj_destroy(fd, sync[0].handle);
gem_close(fd, bo);
@@ -485,8 +485,7 @@ static void vm_async_ops_err(int fd, bool destroy)
}
for (i = 0; i < N_BINDS; i++)
- igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
- NULL));
+ igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
if (!destroy)
xe_vm_destroy(fd, vm);
@@ -599,14 +598,12 @@ shared_pte_page(int fd, struct drm_xe_engine_class_instance *eci, int n_bo,
sync_all[n_execs].handle = sync[0].handle;
xe_vm_unbind_async(fd, vm, 0, 0, addr + i * addr_stride,
bo_size, sync_all, n_execs + 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0,
- NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
}
for (i = 0; i < n_execs; i++)
- igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
- NULL));
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
for (i = 0; i < n_execs; i++)
igt_assert_eq(data[i]->data, 0xc0ffee);
@@ -637,7 +634,7 @@ shared_pte_page(int fd, struct drm_xe_engine_class_instance *eci, int n_bo,
exec.engine_id = engines[e];
exec.address = batch_addr;
- syncobj_reset(fd, &syncobjs[e], 1);
+ syncobj_reset1(fd, syncobjs[e]);
xe_exec(fd, &exec);
}
@@ -649,17 +646,15 @@ shared_pte_page(int fd, struct drm_xe_engine_class_instance *eci, int n_bo,
sync_all[n_execs].handle = sync[0].handle;
xe_vm_unbind_async(fd, vm, 0, 0, addr + i * addr_stride,
bo_size, sync_all, n_execs + 1);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0,
- NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
}
for (i = 0; i < n_execs; i++) {
if (!(i % 2))
continue;
- igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
- NULL));
+ igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
}
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
for (i = 0; i < n_execs; i++)
igt_assert_eq(data[i]->data, 0xc0ffee);
@@ -790,19 +785,18 @@ test_bind_engines_independent(int fd, struct drm_xe_engine_class_instance *eci)
}
/* Verify initial bind, bind + write to 2nd engine done */
- igt_assert(syncobj_wait(fd, &syncobjs[1], 1, INT64_MAX, 0, NULL));
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, syncobjs[1], INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
igt_assert_eq(data[1].data, 0xc0ffee);
/* Verify bind + write to 1st engine still inflight */
- igt_assert(!syncobj_wait(fd, &syncobjs[0], 1, 1, 0, NULL));
- igt_assert(!syncobj_wait(fd, &syncobjs[N_ENGINES], 1, 1, 0, NULL));
+ igt_assert(!syncobj_wait1(fd, syncobjs[0], 1, 0, NULL));
+ igt_assert(!syncobj_wait1(fd, syncobjs[N_ENGINES], 1, 0, NULL));
/* Verify bind + write to 1st engine done after ending spinner */
xe_spin_end(&data[0].spin);
- igt_assert(syncobj_wait(fd, &syncobjs[0], 1, INT64_MAX, 0, NULL));
- igt_assert(syncobj_wait(fd, &syncobjs[N_ENGINES], 1, INT64_MAX, 0,
- NULL));
+ igt_assert(syncobj_wait1(fd, syncobjs[0], INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, syncobjs[N_ENGINES], INT64_MAX, 0, NULL));
igt_assert_eq(data[0].data, 0xc0ffee);
syncobj_destroy(fd, sync[0].handle);
@@ -934,13 +928,13 @@ test_bind_array(int fd, struct drm_xe_engine_class_instance *eci, int n_execs,
bind_ops[i].op = XE_VM_BIND_OP_UNMAP | XE_VM_BIND_FLAG_ASYNC;
}
- syncobj_reset(fd, &sync[0].handle, 1);
+ syncobj_reset1(fd, sync[0].handle);
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
sync[1].flags &= ~DRM_XE_SYNC_SIGNAL;
xe_vm_bind_array(fd, vm, bind_engine, bind_ops, n_execs, sync, 2);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
- igt_assert(syncobj_wait(fd, &sync[1].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[1].handle, INT64_MAX, 0, NULL));
for (i = 0; i < n_execs; i++)
igt_assert_eq(data[i].data, 0xc0ffee);
@@ -1104,7 +1098,7 @@ test_large_binds(int fd, struct drm_xe_engine_class_instance *eci,
sync[1].handle = syncobjs[e];
if (i != e)
- syncobj_reset(fd, &sync[1].handle, 1);
+ syncobj_reset1(fd, sync[1].handle);
exec.engine_id = engines[e];
exec.address = batch_addr;
@@ -1117,11 +1111,10 @@ test_large_binds(int fd, struct drm_xe_engine_class_instance *eci,
}
for (i = 0; i < n_engines; i++)
- igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
- NULL));
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
- syncobj_reset(fd, &sync[0].handle, 1);
+ syncobj_reset1(fd, sync[0].handle);
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
if (flags & LARGE_BIND_FLAG_SPLIT) {
xe_vm_unbind_async(fd, vm, 0, 0, base_addr,
@@ -1132,7 +1125,7 @@ test_large_binds(int fd, struct drm_xe_engine_class_instance *eci,
xe_vm_unbind_async(fd, vm, 0, 0, base_addr, bo_size,
sync, 1);
}
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
addr = base_addr;
for (i = 0; i < n_execs; i++) {
@@ -1216,9 +1209,9 @@ static void *hammer_thread(void *tdata)
} else {
exec.num_syncs = 1;
xe_exec(t->fd, &exec);
- igt_assert(syncobj_wait(t->fd, &sync[0].handle, 1,
- INT64_MAX, 0, NULL));
- syncobj_reset(t->fd, &sync[0].handle, 1);
+ igt_assert(syncobj_wait1(t->fd, sync[0].handle,
+ INT64_MAX, 0, NULL));
+ syncobj_reset1(t->fd, sync[0].handle);
}
++i;
}
@@ -1389,7 +1382,7 @@ test_munmap_style_unbind(int fd, struct drm_xe_engine_class_instance *eci,
sync[0].flags &= ~DRM_XE_SYNC_SIGNAL;
if (i)
- syncobj_reset(fd, &sync[1].handle, 1);
+ syncobj_reset1(fd, sync[1].handle);
sync[1].flags |= DRM_XE_SYNC_SIGNAL;
exec.engine_id = engine;
@@ -1401,15 +1394,15 @@ test_munmap_style_unbind(int fd, struct drm_xe_engine_class_instance *eci,
addr = base_addr;
/* Unbind some of the pages */
- syncobj_reset(fd, &sync[0].handle, 1);
+ syncobj_reset1(fd, sync[0].handle);
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
sync[1].flags &= ~DRM_XE_SYNC_SIGNAL;
xe_vm_unbind_async(fd, vm, 0, 0,
addr + unbind_n_page_offfset * page_size,
unbind_n_pages * page_size, sync, 2);
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
- igt_assert(syncobj_wait(fd, &sync[1].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[1].handle, INT64_MAX, 0, NULL));
/* Verify all pages written */
for (i = 0; i < n_binds; ++i) {
@@ -1445,7 +1438,7 @@ try_again_after_invalidate:
igt_assert(b <= ARRAY_SIZE(data[i].batch));
sync[0].flags &= ~DRM_XE_SYNC_SIGNAL;
- syncobj_reset(fd, &sync[1].handle, 1);
+ syncobj_reset1(fd, sync[1].handle);
sync[1].flags |= DRM_XE_SYNC_SIGNAL;
exec.engine_id = engine;
@@ -1455,8 +1448,8 @@ try_again_after_invalidate:
}
addr = base_addr;
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
- igt_assert(syncobj_wait(fd, &sync[1].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[1].handle, INT64_MAX, 0, NULL));
/* Verify all pages still bound written */
for (i = 0; i < n_binds; ++i) {
@@ -1486,7 +1479,7 @@ try_again_after_invalidate:
}
/* Confirm unbound region can be rebound */
- syncobj_reset(fd, &sync[0].handle, 1);
+ syncobj_reset1(fd, sync[0].handle);
sync[0].flags |= DRM_XE_SYNC_SIGNAL;
if (flags & MUNMAP_FLAG_USERPTR)
xe_vm_bind_userptr_async(fd, vm, 0,
@@ -1516,7 +1509,7 @@ try_again_after_invalidate:
igt_assert(b <= ARRAY_SIZE(data[i].batch));
sync[0].flags &= ~DRM_XE_SYNC_SIGNAL;
- syncobj_reset(fd, &sync[1].handle, 1);
+ syncobj_reset1(fd, sync[1].handle);
sync[1].flags |= DRM_XE_SYNC_SIGNAL;
exec.engine_id = engine;
@@ -1527,8 +1520,8 @@ try_again_after_invalidate:
}
addr = base_addr;
- igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
- igt_assert(syncobj_wait(fd, &sync[1].handle, 1, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
+ igt_assert(syncobj_wait1(fd, sync[1].handle, INT64_MAX, 0, NULL));
/* Verify all pages written */
for (i = 0; i < n_binds; ++i) {
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests
2023-03-28 12:40 [igt-dev] [PATCH i-g-t 1/2] xe_pm: Kill display for PM tests Maarten Lankhorst
2023-03-28 12:40 ` [igt-dev] [PATCH i-g-t 2/2] tests/xe: Prepare for widening drm_xe_sync.handle to 64-bits Maarten Lankhorst
@ 2023-03-28 13:27 ` Patchwork
2023-03-28 13:42 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2023-03-28 13:27 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests
URL : https://patchwork.freedesktop.org/series/115720/
State : warning
== Summary ==
Pipeline status: FAILED.
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/841253 for the overview.
build:tests-fedora-no-libunwind has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/38892122):
section_start:1680009321:get_sources
Getting source from Git repository
$ /host/bin/curl -s -L --cacert /host/ca-certificates.crt --retry 4 -f --retry-delay 60 https://gitlab.freedesktop.org/freedesktop/helm-gitlab-infra/-/raw/main/runner-gating/runner-gating.sh | sh -s -- pre_get_sources_script
Checking if the user of the pipeline is allowed...
Checking if the job's project is part of a well-known group...
Thank you for contributing to freedesktop.org
Fetching changes...
Reinitialized existing Git repository in /builds/gfx-ci/igt-ci-tags/.git/
Checking out fbb196e8 as detached HEAD (ref is intel/IGTPW_8701)...
Skipping Git submodules setup
section_end:1680009324:get_sources
section_start:1680009324:step_script
Executing "step_script" stage of the job script
Using docker image sha256:4b3054d89ef79f9be95501786fbbbe22857d02c867fff99693808cd80909939f for registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora:commit-fbb196e8692a157cb144d198d7cbd0e4c833e8fd with digest registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora@sha256:17d64607d998df2bf29a56b88922d3a598e6f1daa3b51ece2a892c2f293daf83 ...
section_end:1680009325:step_script
section_start:1680009325:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1680009327:cleanup_file_variables
ERROR: Job failed (system failure): Error response from daemon: container c58e1124b1cc72452c7abeb20a2cbe8eb3a3ed5cad59c9a78d8bc052c8a19067 does not exist in database: no such container (exec.go:78:0s)
== Logs ==
For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/841253
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests
2023-03-28 12:40 [igt-dev] [PATCH i-g-t 1/2] xe_pm: Kill display for PM tests Maarten Lankhorst
2023-03-28 12:40 ` [igt-dev] [PATCH i-g-t 2/2] tests/xe: Prepare for widening drm_xe_sync.handle to 64-bits Maarten Lankhorst
2023-03-28 13:27 ` [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests Patchwork
@ 2023-03-28 13:42 ` Patchwork
2023-03-28 23:53 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2023-03-28 13:42 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 6895 bytes --]
== Series Details ==
Series: series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests
URL : https://patchwork.freedesktop.org/series/115720/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12926 -> IGTPW_8701
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/index.html
Participating hosts (36 -> 36)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in IGTPW_8701 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_lmem_swapping@basic:
- bat-adln-1: NOTRUN -> [SKIP][1] ([i915#4613]) +3 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-adln-1/igt@gem_lmem_swapping@basic.html
* igt@i915_selftest@live@gt_heartbeat:
- fi-skl-6600u: [PASS][2] -> [DMESG-FAIL][3] ([i915#5334])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/fi-skl-6600u/igt@i915_selftest@live@gt_heartbeat.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/fi-skl-6600u/igt@i915_selftest@live@gt_heartbeat.html
- fi-apl-guc: [PASS][4] -> [DMESG-FAIL][5] ([i915#5334])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_selftest@live@reset:
- bat-rpls-2: [PASS][6] -> [ABORT][7] ([i915#4983] / [i915#7913])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-rpls-2/igt@i915_selftest@live@reset.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-rpls-2/igt@i915_selftest@live@reset.html
* igt@i915_selftest@live@slpc:
- bat-adln-1: NOTRUN -> [DMESG-FAIL][8] ([i915#6997])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-adln-1/igt@i915_selftest@live@slpc.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- fi-bsw-nick: NOTRUN -> [SKIP][9] ([fdo#109271]) +1 similar issue
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/fi-bsw-nick/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
- bat-dg2-11: NOTRUN -> [SKIP][10] ([i915#7828])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-dg2-11/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
- bat-adln-1: NOTRUN -> [SKIP][11] ([i915#7828])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-adln-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
- bat-rpls-1: NOTRUN -> [SKIP][12] ([i915#7828])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-rpls-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- bat-rpls-1: NOTRUN -> [SKIP][13] ([i915#1845])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-rpls-1/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@prime_vgem@basic-userptr:
- bat-adln-1: NOTRUN -> [SKIP][14] ([fdo#109295] / [i915#3301])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-adln-1/igt@prime_vgem@basic-userptr.html
* igt@prime_vgem@basic-write:
- bat-adln-1: NOTRUN -> [SKIP][15] ([fdo#109295] / [i915#3291]) +2 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-adln-1/igt@prime_vgem@basic-write.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s3@smem:
- bat-rpls-1: [ABORT][16] ([i915#6687] / [i915#7978]) -> [PASS][17]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-rpls-1/igt@gem_exec_suspend@basic-s3@smem.html
* igt@i915_pm_rpm@basic-rte:
- bat-adln-1: [ABORT][18] ([i915#7977]) -> [PASS][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-adln-1/igt@i915_pm_rpm@basic-rte.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-adln-1/igt@i915_pm_rpm@basic-rte.html
* igt@i915_selftest@live@execlists:
- fi-bsw-nick: [ABORT][20] ([i915#7911] / [i915#7913]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/fi-bsw-nick/igt@i915_selftest@live@execlists.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/fi-bsw-nick/igt@i915_selftest@live@execlists.html
* igt@i915_selftest@live@gt_lrc:
- bat-dg2-11: [INCOMPLETE][22] ([i915#7609] / [i915#7913]) -> [PASS][23]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html
* igt@i915_selftest@live@workarounds:
- bat-rpls-1: [DMESG-FAIL][24] ([i915#6763]) -> [PASS][25]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/bat-rpls-1/igt@i915_selftest@live@workarounds.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/bat-rpls-1/igt@i915_selftest@live@workarounds.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
[i915#6763]: https://gitlab.freedesktop.org/drm/intel/issues/6763
[i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
[i915#7609]: https://gitlab.freedesktop.org/drm/intel/issues/7609
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7977]: https://gitlab.freedesktop.org/drm/intel/issues/7977
[i915#7978]: https://gitlab.freedesktop.org/drm/intel/issues/7978
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7221 -> IGTPW_8701
CI-20190529: 20190529
CI_DRM_12926: 3c05e51a6eff5ee0f05df5b40412e6ae7a18286b @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8701: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/index.html
IGT_7221: 4b77c6d85024d22ca521d510f8eee574128fe04f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/index.html
[-- Attachment #2: Type: text/html, Size: 8264 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests
2023-03-28 12:40 [igt-dev] [PATCH i-g-t 1/2] xe_pm: Kill display for PM tests Maarten Lankhorst
` (2 preceding siblings ...)
2023-03-28 13:42 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2023-03-28 23:53 ` Patchwork
2023-04-03 5:37 ` [igt-dev] [PATCH i-g-t 1/2] " Zbigniew Kempczyński
2023-04-03 18:32 ` [igt-dev] ✗ Fi.CI.BUILD: failure for series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests (rev2) Patchwork
5 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2023-03-28 23:53 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 12288 bytes --]
== Series Details ==
Series: series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests
URL : https://patchwork.freedesktop.org/series/115720/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12926_full -> IGTPW_8701_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/index.html
Participating hosts (7 -> 7)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in IGTPW_8701_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_fair@basic-deadline:
- shard-glk: [PASS][1] -> [FAIL][2] ([i915#2846])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-glk2/igt@gem_exec_fair@basic-deadline.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-glk7/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [PASS][3] -> [FAIL][4] ([i915#2842])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-glk7/igt@gem_exec_fair@basic-pace-share@rcs0.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-glk5/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_mmap_gtt@fault-concurrent-y:
- shard-snb: [PASS][5] -> [ABORT][6] ([i915#5161])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-snb7/igt@gem_mmap_gtt@fault-concurrent-y.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-snb5/igt@gem_mmap_gtt@fault-concurrent-y.html
* igt@i915_module_load@reload-with-fault-injection:
- shard-snb: [PASS][7] -> [ABORT][8] ([i915#4528])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-snb4/igt@i915_module_load@reload-with-fault-injection.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-snb2/igt@i915_module_load@reload-with-fault-injection.html
* igt@kms_ccs@pipe-a-random-ccs-data-4_tiled_dg2_rc_ccs:
- shard-glk: NOTRUN -> [SKIP][9] ([fdo#109271])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-glk9/igt@kms_ccs@pipe-a-random-ccs-data-4_tiled_dg2_rc_ccs.html
#### Possible fixes ####
* {igt@gem_barrier_race@remote-request@rcs0}:
- shard-glk: [ABORT][10] ([i915#8211]) -> [PASS][11]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-glk1/igt@gem_barrier_race@remote-request@rcs0.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-glk5/igt@gem_barrier_race@remote-request@rcs0.html
* igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-apl: [FAIL][12] ([i915#2842]) -> [PASS][13]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-apl1/igt@gem_exec_fair@basic-none-solo@rcs0.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-apl6/igt@gem_exec_fair@basic-none-solo@rcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- {shard-tglu}: [FAIL][14] ([i915#2842]) -> [PASS][15]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-tglu-7/igt@gem_exec_fair@basic-pace-share@rcs0.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-tglu-7/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@i915_pm_dc@dc9-dpms:
- shard-apl: [SKIP][16] ([fdo#109271]) -> [PASS][17]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-apl1/igt@i915_pm_dc@dc9-dpms.html
- {shard-tglu}: [SKIP][18] ([i915#4281]) -> [PASS][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-tglu-8/igt@i915_pm_dc@dc9-dpms.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-tglu-2/igt@i915_pm_dc@dc9-dpms.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-apl: [FAIL][20] ([i915#2346]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-glk: [FAIL][22] ([i915#2346]) -> [PASS][23]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12926/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
[fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
[i915#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938
[i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
[i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
[i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
[i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
[i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
[i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
[i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
[i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
[i915#5161]: https://gitlab.freedesktop.org/drm/intel/issues/5161
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7178]: https://gitlab.freedesktop.org/drm/intel/issues/7178
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#8155]: https://gitlab.freedesktop.org/drm/intel/issues/8155
[i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7221 -> IGTPW_8701
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12926: 3c05e51a6eff5ee0f05df5b40412e6ae7a18286b @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8701: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/index.html
IGT_7221: 4b77c6d85024d22ca521d510f8eee574128fe04f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8701/index.html
[-- Attachment #2: Type: text/html, Size: 7287 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] xe_pm: Kill display for PM tests
2023-03-28 12:40 [igt-dev] [PATCH i-g-t 1/2] xe_pm: Kill display for PM tests Maarten Lankhorst
` (3 preceding siblings ...)
2023-03-28 23:53 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2023-04-03 5:37 ` Zbigniew Kempczyński
2023-04-03 14:55 ` Maarten Lankhorst
2023-04-03 18:32 ` [igt-dev] ✗ Fi.CI.BUILD: failure for series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests (rev2) Patchwork
5 siblings, 1 reply; 9+ messages in thread
From: Zbigniew Kempczyński @ 2023-04-03 5:37 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: igt-dev
On Tue, Mar 28, 2023 at 02:40:43PM +0200, Maarten Lankhorst wrote:
> Display keeps PM alive, do the minimal initialization to disable
> display for the PM tests entirely.
What's the reason of enforcing releasing display before starting PM
tests? Looks like introducing testing gap.
--
Zbigniew
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
> tests/xe/xe_pm.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/tests/xe/xe_pm.c b/tests/xe/xe_pm.c
> index 23b8246ed..861f6b915 100644
> --- a/tests/xe/xe_pm.c
> +++ b/tests/xe/xe_pm.c
> @@ -365,6 +365,8 @@ igt_main
> };
>
> igt_fixture {
> + drmModeResPtr res;
> +
> memset(&device, 0, sizeof(device));
> device.fd_xe = drm_open_driver(DRIVER_XE);
> device.pci_xe = igt_device_get_pci_device(device.fd_xe);
> @@ -376,6 +378,17 @@ igt_main
> xe_for_each_hw_engine(device.fd_xe, hwe)
> test_exec(device, hwe, 1, 1, NO_SUSPEND, NO_RPM);
>
> + /* Kill display, if it exists */
> + res = drmModeGetResources(device.fd_xe);
> + if (res) {
> + igt_display_t display;
> +
> + drmModeFreeResources(res);
> + igt_display_require(&display, device.fd_xe);
> + igt_display_commit2(&display, COMMIT_ATOMIC);
> + igt_display_fini(&display);
> + }
> +
> get_d3cold_allowed(device.pci_xe, d3cold_allowed);
> igt_assert(igt_setup_runtime_pm(device.fd_xe));
> }
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/xe: Prepare for widening drm_xe_sync.handle to 64-bits
2023-03-28 12:40 ` [igt-dev] [PATCH i-g-t 2/2] tests/xe: Prepare for widening drm_xe_sync.handle to 64-bits Maarten Lankhorst
@ 2023-04-03 5:58 ` Zbigniew Kempczyński
0 siblings, 0 replies; 9+ messages in thread
From: Zbigniew Kempczyński @ 2023-04-03 5:58 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: igt-dev
On Tue, Mar 28, 2023 at 02:40:44PM +0200, Maarten Lankhorst wrote:
> By not using a pointer to drm_xe_sync.handle, but taking the value, it
> becomes safer when we change the word size to 64-bits. This is required
> to make drm_xe_sync.handle safe on big-endian, and to explicitly set
> the high 32-bits to 0.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
> lib/igt_syncobj.c | 14 +++++++
> lib/igt_syncobj.h | 4 ++
> lib/xe/xe_ioctl.c | 4 +-
> tests/xe/xe_compute.c | 4 +-
> tests/xe/xe_dma_buf_sync.c | 7 ++--
> tests/xe/xe_evict.c | 4 +-
> tests/xe/xe_exec_balancer.c | 8 ++--
> tests/xe/xe_exec_basic.c | 6 +--
> tests/xe/xe_exec_reset.c | 19 +++++----
> tests/xe/xe_exec_threads.c | 20 ++++-----
> tests/xe/xe_guc_pc.c | 4 +-
> tests/xe/xe_huc_copy.c | 4 +-
> tests/xe/xe_pm.c | 8 ++--
> tests/xe/xe_vm.c | 81 +++++++++++++++++--------------------
> 14 files changed, 96 insertions(+), 91 deletions(-)
>
> diff --git a/lib/igt_syncobj.c b/lib/igt_syncobj.c
> index a24ed10b7..95cad585e 100644
> --- a/lib/igt_syncobj.c
> +++ b/lib/igt_syncobj.c
> @@ -248,6 +248,14 @@ syncobj_wait(int fd, uint32_t *handles, uint32_t count,
> return true;
> }
>
> +bool
> +syncobj_wait1(int fd, uint32_t handle,
> + uint64_t abs_timeout_nsec, uint32_t flags,
> + uint32_t *first_signaled)
Invalid indent. Also lacks of documentation for public function.
I'm not sure wait1 is lucky suffix, reminds me dupX() history.
Maybe syncobj_wait_handle() or syncobj_wait_single()?
> +{
> + return syncobj_wait(fd, &handle, 1, abs_timeout_nsec, flags, first_signaled);
> +}
How this (&handle) relates to passing the value mentioned in commit message?
I still see pointer here which points to handle on the stack. So if I'm
not wrong code still points to handle - where's that passing by a value then?
> +
> static int
> __syncobj_reset(int fd, uint32_t *handles, uint32_t count)
> {
> @@ -278,6 +286,12 @@ syncobj_reset(int fd, uint32_t *handles, uint32_t count)
> igt_assert_eq(__syncobj_reset(fd, handles, count), 0);
> }
>
> +void
> +syncobj_reset1(int fd, uint32_t handle)
> +{
> + syncobj_reset(fd, &handle, 1);
> +}
> +
Similar issue with suffix.
--
Zbigniew
> static int
> __syncobj_signal(int fd, uint32_t *handles, uint32_t count)
> {
> diff --git a/lib/igt_syncobj.h b/lib/igt_syncobj.h
> index e6725671d..6d6d08cbd 100644
> --- a/lib/igt_syncobj.h
> +++ b/lib/igt_syncobj.h
> @@ -41,6 +41,9 @@ int syncobj_wait_err(int fd, uint32_t *handles, uint32_t count,
> bool syncobj_wait(int fd, uint32_t *handles, uint32_t count,
> uint64_t abs_timeout_nsec, uint32_t flags,
> uint32_t *first_signaled);
> +bool syncobj_wait1(int fd, __u32 handle,
> + uint64_t abs_timeout_nsec, uint32_t flags,
> + uint32_t *first_signaled);
> int __syncobj_timeline_wait_ioctl(int fd,
> struct drm_syncobj_timeline_wait *args);
> bool syncobj_timeline_wait(int fd, uint32_t *handles, uint64_t *points,
> @@ -51,6 +54,7 @@ int syncobj_timeline_wait_err(int fd, uint32_t *handles, uint64_t *points,
> unsigned num_handles,
> int64_t timeout_nsec, unsigned flags);
> void syncobj_reset(int fd, uint32_t *handles, uint32_t count);
> +void syncobj_reset1(int fd, uint32_t handle);
> void syncobj_signal(int fd, uint32_t *handles, uint32_t count);
> void syncobj_timeline_query(int fd, uint32_t *handles, uint64_t *points,
> uint32_t count);
> diff --git a/lib/xe/xe_ioctl.c b/lib/xe/xe_ioctl.c
> index 9d5793dff..62da03c7d 100644
> --- a/lib/xe/xe_ioctl.c
> +++ b/lib/xe/xe_ioctl.c
> @@ -207,7 +207,7 @@ static void __xe_vm_bind_sync(int fd, uint32_t vm, uint32_t bo, uint64_t offset,
> __xe_vm_bind_assert(fd, vm, 0, bo, offset, addr, size, op, &sync, 1, 0,
> 0);
>
> - igt_assert(syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL));
> syncobj_destroy(fd, sync.handle);
> }
>
> @@ -386,7 +386,7 @@ void xe_exec_wait(int fd, uint32_t engine, uint64_t addr)
>
> xe_exec_sync(fd, engine, addr, &sync, 1);
>
> - igt_assert(syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL));
> syncobj_destroy(fd, sync.handle);
> }
>
> diff --git a/tests/xe/xe_compute.c b/tests/xe/xe_compute.c
> index 138d80671..d72391a6e 100644
> --- a/tests/xe/xe_compute.c
> +++ b/tests/xe/xe_compute.c
> @@ -75,7 +75,7 @@ test_compute_square(int fd)
> for(int i = 0; i < BO_DICT_ENTRIES; i++) {
> bo_dict[i].data = aligned_alloc(xe_get_default_alignment(fd), bo_dict[i].size);
> xe_vm_bind_userptr_async(fd, vm, 0, to_user_pointer(bo_dict[i].data), bo_dict[i].addr, bo_dict[i].size, &sync, 1);
> - syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL);
> + syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL);
> memset(bo_dict[i].data, 0, bo_dict[i].size);
> }
> memcpy(bo_dict[0].data, tgllp_kernel_square_bin, tgllp_kernel_square_length);
> @@ -96,7 +96,7 @@ test_compute_square(int fd)
>
> for(int i = 0; i < BO_DICT_ENTRIES; i++) {
> xe_vm_unbind_async(fd, vm, 0, 0, bo_dict[i].addr, bo_dict[i].size, &sync, 1);
> - syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL);
> + syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL);
> free(bo_dict[i].data);
> }
>
> diff --git a/tests/xe/xe_dma_buf_sync.c b/tests/xe/xe_dma_buf_sync.c
> index 8b97480a7..91fc54adb 100644
> --- a/tests/xe/xe_dma_buf_sync.c
> +++ b/tests/xe/xe_dma_buf_sync.c
> @@ -195,14 +195,13 @@ test_export_dma_buf(struct drm_xe_engine_class_instance *hwe0,
>
> /* Verify exec blocked on spinner / prime BO */
> usleep(5000);
> - igt_assert(!syncobj_wait(fd[1], &sync[1].handle, 1, 1, 0,
> - NULL));
> + igt_assert(!syncobj_wait1(fd[1], sync[1].handle, 1, 0, NULL));
> igt_assert_eq(data[i]->data, 0x0);
>
> /* End spinner and verify exec complete */
> xe_spin_end(&data[i]->spin);
> - igt_assert(syncobj_wait(fd[1], &sync[1].handle, 1, INT64_MAX,
> - 0, NULL));
> + igt_assert(syncobj_wait1(fd[1], sync[1].handle, INT64_MAX, 0,
> + NULL));
> igt_assert_eq(data[i]->data, 0xc0ffee);
>
> /* Clean up */
> diff --git a/tests/xe/xe_evict.c b/tests/xe/xe_evict.c
> index eddbbd6f4..79d018c30 100644
> --- a/tests/xe/xe_evict.c
> +++ b/tests/xe/xe_evict.c
> @@ -124,7 +124,7 @@ test_evict(int fd, struct drm_xe_engine_class_instance *eci,
> xe_vm_bind_async(fd, vm3, bind_engines[2], __bo,
> 0, addr,
> bo_size, sync, 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1,
> + igt_assert(syncobj_wait1(fd, sync[0].handle,
> INT64_MAX, 0, NULL));
> xe_vm_bind_async(fd, i & 1 ? vm2 : vm,
> i & 1 ? bind_engines[1] :
> @@ -168,7 +168,7 @@ test_evict(int fd, struct drm_xe_engine_class_instance *eci,
> for (i = 0; i < n_engines; i++)
> igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
> NULL));
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> for (i = 0; i < n_execs; i++) {
> uint32_t __bo;
> diff --git a/tests/xe/xe_exec_balancer.c b/tests/xe/xe_exec_balancer.c
> index f3341a99e..03ab83330 100644
> --- a/tests/xe/xe_exec_balancer.c
> +++ b/tests/xe/xe_exec_balancer.c
> @@ -110,11 +110,11 @@ static void test_all_active(int fd, int gt, int class)
> igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
> NULL));
> }
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> syncobj_destroy(fd, sync[0].handle);
> for (i = 0; i < num_placements; i++) {
> @@ -332,11 +332,11 @@ test_exec(int fd, int gt, int class, int n_engines, int n_execs,
> for (i = 0; i < n_engines && n_execs; i++)
> igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
> NULL));
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> for (i = (flags & INVALIDATE && n_execs) ? n_execs - 1 : 0;
> i < n_execs; i++)
> diff --git a/tests/xe/xe_exec_basic.c b/tests/xe/xe_exec_basic.c
> index 2a3cebd36..3a4ca55b7 100644
> --- a/tests/xe/xe_exec_basic.c
> +++ b/tests/xe/xe_exec_basic.c
> @@ -254,11 +254,11 @@ test_exec(int fd, struct drm_xe_engine_class_instance *eci,
>
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> for (i = 0; i < n_vm; ++i) {
> - syncobj_reset(fd, &sync[0].handle, 1);
> + syncobj_reset1(fd, sync[0].handle);
> xe_vm_unbind_async(fd, vm[i], bind_engines[i], 0, addr[i],
> bo_size, sync, 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1,
> - INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0,
> + NULL));
> }
>
> for (i = (flags & INVALIDATE && n_execs) ? n_execs - 1 : 0;
> diff --git a/tests/xe/xe_exec_reset.c b/tests/xe/xe_exec_reset.c
> index 57dc90dd0..2ae1a51ad 100644
> --- a/tests/xe/xe_exec_reset.c
> +++ b/tests/xe/xe_exec_reset.c
> @@ -72,15 +72,15 @@ static void test_spin(int fd, struct drm_xe_engine_class_instance *eci)
>
> xe_spin_wait_started(spin);
> usleep(50000);
> - igt_assert(!syncobj_wait(fd, &syncobj, 1, 1, 0, NULL));
> + igt_assert(!syncobj_wait1(fd, syncobj, 1, 0, NULL));
> xe_spin_end(spin);
>
> - igt_assert(syncobj_wait(fd, &syncobj, 1, INT64_MAX, 0, NULL));
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, syncobj, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> syncobj_destroy(fd, sync[0].handle);
> syncobj_destroy(fd, syncobj);
> @@ -301,13 +301,12 @@ test_balancer(int fd, int gt, int class, int n_engines, int n_execs,
> }
>
> for (i = 0; i < n_engines && n_execs; i++)
> - igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
> - NULL));
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> for (i = bad_batches; i < n_execs; i++)
> igt_assert_eq(data[i].data, 0xc0ffee);
> @@ -484,11 +483,11 @@ test_legacy_mode(int fd, struct drm_xe_engine_class_instance *eci,
> for (i = 0; i < n_engines && n_execs; i++)
> igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
> NULL));
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> for (i = 1; i < n_execs; i++)
> igt_assert_eq(data[i].data, 0xc0ffee);
> diff --git a/tests/xe/xe_exec_threads.c b/tests/xe/xe_exec_threads.c
> index c34d8aec6..9b3ca51aa 100644
> --- a/tests/xe/xe_exec_threads.c
> +++ b/tests/xe/xe_exec_threads.c
> @@ -194,8 +194,7 @@ test_balancer(int fd, int gt, uint32_t vm, uint64_t addr, uint64_t userptr,
> * an invalidate.
> */
> for (j = 0; j < n_engines; ++j)
> - igt_assert(syncobj_wait(fd,
> - &syncobjs[j], 1,
> + igt_assert(syncobj_wait1(fd, syncobjs[j],
> INT64_MAX, 0,
> NULL));
> igt_assert_eq(data[i].data, 0xc0ffee);
> @@ -217,13 +216,12 @@ test_balancer(int fd, int gt, uint32_t vm, uint64_t addr, uint64_t userptr,
> }
>
> for (i = 0; i < n_engines; i++)
> - igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
> - NULL));
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> xe_vm_unbind_async(fd, vm, 0, 0, addr, bo_size, sync, 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> for (i = (flags & INVALIDATE && n_execs) ? n_execs - 1 : 0;
> i < n_execs; i++)
> @@ -637,8 +635,7 @@ test_legacy_mode(int fd, uint32_t vm, uint64_t addr, uint64_t userptr,
> * an invalidate.
> */
> for (j = 0; j < n_engines; ++j)
> - igt_assert(syncobj_wait(fd,
> - &syncobjs[j], 1,
> + igt_assert(syncobj_wait1(fd, syncobjs[j],
> INT64_MAX, 0,
> NULL));
> if (!(flags & HANG && e == hang_engine))
> @@ -661,14 +658,13 @@ test_legacy_mode(int fd, uint32_t vm, uint64_t addr, uint64_t userptr,
> }
>
> for (i = 0; i < n_engines; i++)
> - igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
> - NULL));
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> xe_vm_unbind_async(fd, vm, bind_engines[0], 0, addr,
> bo_size, sync, 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> for (i = flags & INVALIDATE ? n_execs - 1 : 0;
> i < n_execs; i++) {
> diff --git a/tests/xe/xe_guc_pc.c b/tests/xe/xe_guc_pc.c
> index 60c93288b..e87f996cc 100644
> --- a/tests/xe/xe_guc_pc.c
> +++ b/tests/xe/xe_guc_pc.c
> @@ -110,12 +110,12 @@ static void exec_basic(int fd, struct drm_xe_engine_class_instance *eci,
> igt_assert_eq(data[i].data, 0xc0ffee);
> }
>
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> xe_vm_unbind_async(fd, vm, bind_engines[0], 0, addr,
> bo_size, sync, 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> for (i = 0; i < n_execs; i++)
> igt_assert_eq(data[i].data, 0xc0ffee);
> diff --git a/tests/xe/xe_huc_copy.c b/tests/xe/xe_huc_copy.c
> index ee3896cef..0292e7c64 100644
> --- a/tests/xe/xe_huc_copy.c
> +++ b/tests/xe/xe_huc_copy.c
> @@ -126,7 +126,7 @@ test_huc_copy(int fd)
> for(int i = 0; i < BO_DICT_ENTRIES; i++) {
> bo_dict[i].data = aligned_alloc(xe_get_default_alignment(fd), bo_dict[i].size);
> xe_vm_bind_userptr_async(fd, vm, 0, to_user_pointer(bo_dict[i].data), bo_dict[i].addr, bo_dict[i].size, &sync, 1);
> - syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL);
> + syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL);
> memset(bo_dict[i].data, 0, bo_dict[i].size);
> }
> dinput = (char *)bo_dict[0].data;
> @@ -143,7 +143,7 @@ test_huc_copy(int fd)
>
> for(int i = 0; i < BO_DICT_ENTRIES; i++) {
> xe_vm_unbind_async(fd, vm, 0, 0, bo_dict[i].addr, bo_dict[i].size, &sync, 1);
> - syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL);
> + syncobj_wait1(fd, sync.handle, INT64_MAX, 0, NULL);
> free(bo_dict[i].data);
> }
>
> diff --git a/tests/xe/xe_pm.c b/tests/xe/xe_pm.c
> index 861f6b915..1af453212 100644
> --- a/tests/xe/xe_pm.c
> +++ b/tests/xe/xe_pm.c
> @@ -303,8 +303,8 @@ test_exec(device_t device, struct drm_xe_engine_class_instance *eci,
> SUSPEND_TEST_NONE);
> }
>
> - igt_assert(syncobj_wait(device.fd_xe, &sync[0].handle, 1, INT64_MAX, 0,
> - NULL));
> + igt_assert(syncobj_wait1(device.fd_xe, sync[0].handle, INT64_MAX, 0,
> + NULL));
>
> if (check_rpm && runtime_usage_available(device.pci_xe))
> rpm_usage = igt_pm_get_runtime_usage(device.pci_xe);
> @@ -312,8 +312,8 @@ test_exec(device_t device, struct drm_xe_engine_class_instance *eci,
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> xe_vm_unbind_async(device.fd_xe, vm, bind_engines[0], 0, addr,
> bo_size, sync, 1);
> - igt_assert(syncobj_wait(device.fd_xe, &sync[0].handle, 1, INT64_MAX, 0,
> -NULL));
> + igt_assert(syncobj_wait1(device.fd_xe, sync[0].handle, INT64_MAX, 0,
> + NULL));
>
> for (i = 0; i < n_execs; i++)
> igt_assert_eq(data[i].data, 0xc0ffee);
> diff --git a/tests/xe/xe_vm.c b/tests/xe/xe_vm.c
> index 15356c704..a427014a5 100644
> --- a/tests/xe/xe_vm.c
> +++ b/tests/xe/xe_vm.c
> @@ -285,7 +285,7 @@ static void unbind_all(int fd, int n_vmas)
> sync[0].handle = syncobj_create(fd, 0);
> xe_vm_unbind_all_async(fd, vm, 0, bo, sync, 1);
>
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
> syncobj_destroy(fd, sync[0].handle);
>
> gem_close(fd, bo);
> @@ -485,8 +485,7 @@ static void vm_async_ops_err(int fd, bool destroy)
> }
>
> for (i = 0; i < N_BINDS; i++)
> - igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
> - NULL));
> + igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
>
> if (!destroy)
> xe_vm_destroy(fd, vm);
> @@ -599,14 +598,12 @@ shared_pte_page(int fd, struct drm_xe_engine_class_instance *eci, int n_bo,
> sync_all[n_execs].handle = sync[0].handle;
> xe_vm_unbind_async(fd, vm, 0, 0, addr + i * addr_stride,
> bo_size, sync_all, n_execs + 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0,
> - NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
> }
>
> for (i = 0; i < n_execs; i++)
> - igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
> - NULL));
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> for (i = 0; i < n_execs; i++)
> igt_assert_eq(data[i]->data, 0xc0ffee);
> @@ -637,7 +634,7 @@ shared_pte_page(int fd, struct drm_xe_engine_class_instance *eci, int n_bo,
>
> exec.engine_id = engines[e];
> exec.address = batch_addr;
> - syncobj_reset(fd, &syncobjs[e], 1);
> + syncobj_reset1(fd, syncobjs[e]);
> xe_exec(fd, &exec);
> }
>
> @@ -649,17 +646,15 @@ shared_pte_page(int fd, struct drm_xe_engine_class_instance *eci, int n_bo,
> sync_all[n_execs].handle = sync[0].handle;
> xe_vm_unbind_async(fd, vm, 0, 0, addr + i * addr_stride,
> bo_size, sync_all, n_execs + 1);
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0,
> - NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
> }
>
> for (i = 0; i < n_execs; i++) {
> if (!(i % 2))
> continue;
> - igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
> - NULL));
> + igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
> }
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> for (i = 0; i < n_execs; i++)
> igt_assert_eq(data[i]->data, 0xc0ffee);
> @@ -790,19 +785,18 @@ test_bind_engines_independent(int fd, struct drm_xe_engine_class_instance *eci)
> }
>
> /* Verify initial bind, bind + write to 2nd engine done */
> - igt_assert(syncobj_wait(fd, &syncobjs[1], 1, INT64_MAX, 0, NULL));
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, syncobjs[1], INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
> igt_assert_eq(data[1].data, 0xc0ffee);
>
> /* Verify bind + write to 1st engine still inflight */
> - igt_assert(!syncobj_wait(fd, &syncobjs[0], 1, 1, 0, NULL));
> - igt_assert(!syncobj_wait(fd, &syncobjs[N_ENGINES], 1, 1, 0, NULL));
> + igt_assert(!syncobj_wait1(fd, syncobjs[0], 1, 0, NULL));
> + igt_assert(!syncobj_wait1(fd, syncobjs[N_ENGINES], 1, 0, NULL));
>
> /* Verify bind + write to 1st engine done after ending spinner */
> xe_spin_end(&data[0].spin);
> - igt_assert(syncobj_wait(fd, &syncobjs[0], 1, INT64_MAX, 0, NULL));
> - igt_assert(syncobj_wait(fd, &syncobjs[N_ENGINES], 1, INT64_MAX, 0,
> - NULL));
> + igt_assert(syncobj_wait1(fd, syncobjs[0], INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, syncobjs[N_ENGINES], INT64_MAX, 0, NULL));
> igt_assert_eq(data[0].data, 0xc0ffee);
>
> syncobj_destroy(fd, sync[0].handle);
> @@ -934,13 +928,13 @@ test_bind_array(int fd, struct drm_xe_engine_class_instance *eci, int n_execs,
> bind_ops[i].op = XE_VM_BIND_OP_UNMAP | XE_VM_BIND_FLAG_ASYNC;
> }
>
> - syncobj_reset(fd, &sync[0].handle, 1);
> + syncobj_reset1(fd, sync[0].handle);
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> sync[1].flags &= ~DRM_XE_SYNC_SIGNAL;
> xe_vm_bind_array(fd, vm, bind_engine, bind_ops, n_execs, sync, 2);
>
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> - igt_assert(syncobj_wait(fd, &sync[1].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[1].handle, INT64_MAX, 0, NULL));
>
> for (i = 0; i < n_execs; i++)
> igt_assert_eq(data[i].data, 0xc0ffee);
> @@ -1104,7 +1098,7 @@ test_large_binds(int fd, struct drm_xe_engine_class_instance *eci,
> sync[1].handle = syncobjs[e];
>
> if (i != e)
> - syncobj_reset(fd, &sync[1].handle, 1);
> + syncobj_reset1(fd, sync[1].handle);
>
> exec.engine_id = engines[e];
> exec.address = batch_addr;
> @@ -1117,11 +1111,10 @@ test_large_binds(int fd, struct drm_xe_engine_class_instance *eci,
> }
>
> for (i = 0; i < n_engines; i++)
> - igt_assert(syncobj_wait(fd, &syncobjs[i], 1, INT64_MAX, 0,
> - NULL));
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, syncobjs[i], INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> - syncobj_reset(fd, &sync[0].handle, 1);
> + syncobj_reset1(fd, sync[0].handle);
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> if (flags & LARGE_BIND_FLAG_SPLIT) {
> xe_vm_unbind_async(fd, vm, 0, 0, base_addr,
> @@ -1132,7 +1125,7 @@ test_large_binds(int fd, struct drm_xe_engine_class_instance *eci,
> xe_vm_unbind_async(fd, vm, 0, 0, base_addr, bo_size,
> sync, 1);
> }
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
>
> addr = base_addr;
> for (i = 0; i < n_execs; i++) {
> @@ -1216,9 +1209,9 @@ static void *hammer_thread(void *tdata)
> } else {
> exec.num_syncs = 1;
> xe_exec(t->fd, &exec);
> - igt_assert(syncobj_wait(t->fd, &sync[0].handle, 1,
> - INT64_MAX, 0, NULL));
> - syncobj_reset(t->fd, &sync[0].handle, 1);
> + igt_assert(syncobj_wait1(t->fd, sync[0].handle,
> + INT64_MAX, 0, NULL));
> + syncobj_reset1(t->fd, sync[0].handle);
> }
> ++i;
> }
> @@ -1389,7 +1382,7 @@ test_munmap_style_unbind(int fd, struct drm_xe_engine_class_instance *eci,
>
> sync[0].flags &= ~DRM_XE_SYNC_SIGNAL;
> if (i)
> - syncobj_reset(fd, &sync[1].handle, 1);
> + syncobj_reset1(fd, sync[1].handle);
> sync[1].flags |= DRM_XE_SYNC_SIGNAL;
>
> exec.engine_id = engine;
> @@ -1401,15 +1394,15 @@ test_munmap_style_unbind(int fd, struct drm_xe_engine_class_instance *eci,
> addr = base_addr;
>
> /* Unbind some of the pages */
> - syncobj_reset(fd, &sync[0].handle, 1);
> + syncobj_reset1(fd, sync[0].handle);
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> sync[1].flags &= ~DRM_XE_SYNC_SIGNAL;
> xe_vm_unbind_async(fd, vm, 0, 0,
> addr + unbind_n_page_offfset * page_size,
> unbind_n_pages * page_size, sync, 2);
>
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> - igt_assert(syncobj_wait(fd, &sync[1].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[1].handle, INT64_MAX, 0, NULL));
>
> /* Verify all pages written */
> for (i = 0; i < n_binds; ++i) {
> @@ -1445,7 +1438,7 @@ try_again_after_invalidate:
> igt_assert(b <= ARRAY_SIZE(data[i].batch));
>
> sync[0].flags &= ~DRM_XE_SYNC_SIGNAL;
> - syncobj_reset(fd, &sync[1].handle, 1);
> + syncobj_reset1(fd, sync[1].handle);
> sync[1].flags |= DRM_XE_SYNC_SIGNAL;
>
> exec.engine_id = engine;
> @@ -1455,8 +1448,8 @@ try_again_after_invalidate:
> }
> addr = base_addr;
>
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> - igt_assert(syncobj_wait(fd, &sync[1].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[1].handle, INT64_MAX, 0, NULL));
>
> /* Verify all pages still bound written */
> for (i = 0; i < n_binds; ++i) {
> @@ -1486,7 +1479,7 @@ try_again_after_invalidate:
> }
>
> /* Confirm unbound region can be rebound */
> - syncobj_reset(fd, &sync[0].handle, 1);
> + syncobj_reset1(fd, sync[0].handle);
> sync[0].flags |= DRM_XE_SYNC_SIGNAL;
> if (flags & MUNMAP_FLAG_USERPTR)
> xe_vm_bind_userptr_async(fd, vm, 0,
> @@ -1516,7 +1509,7 @@ try_again_after_invalidate:
> igt_assert(b <= ARRAY_SIZE(data[i].batch));
>
> sync[0].flags &= ~DRM_XE_SYNC_SIGNAL;
> - syncobj_reset(fd, &sync[1].handle, 1);
> + syncobj_reset1(fd, sync[1].handle);
> sync[1].flags |= DRM_XE_SYNC_SIGNAL;
>
> exec.engine_id = engine;
> @@ -1527,8 +1520,8 @@ try_again_after_invalidate:
> }
> addr = base_addr;
>
> - igt_assert(syncobj_wait(fd, &sync[0].handle, 1, INT64_MAX, 0, NULL));
> - igt_assert(syncobj_wait(fd, &sync[1].handle, 1, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[0].handle, INT64_MAX, 0, NULL));
> + igt_assert(syncobj_wait1(fd, sync[1].handle, INT64_MAX, 0, NULL));
>
> /* Verify all pages written */
> for (i = 0; i < n_binds; ++i) {
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] xe_pm: Kill display for PM tests
2023-04-03 5:37 ` [igt-dev] [PATCH i-g-t 1/2] " Zbigniew Kempczyński
@ 2023-04-03 14:55 ` Maarten Lankhorst
0 siblings, 0 replies; 9+ messages in thread
From: Maarten Lankhorst @ 2023-04-03 14:55 UTC (permalink / raw)
To: Zbigniew Kempczyński; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 3540 bytes --]
Hey,
On 2023-04-03 07:37, Zbigniew Kempczyński wrote:
> On Tue, Mar 28, 2023 at 02:40:43PM +0200, Maarten Lankhorst wrote:
>> Display keeps PM alive, do the minimal initialization to disable
>> display for the PM tests entirely.
> What's the reason of enforcing releasing display before starting PM
> tests? Looks like introducing testing gap.
It's the easiest fix, and display is irrelevant for those tests. The
system will not go into
a lower power when display keeps it in a high power state by holding a
PM reference
What do you think of the below test instead?
----------->8---------
diff --git a/tests/xe/xe_pm.c b/tests/xe/xe_pm.c
index 23b8246ed..f681e253a 100644
--- a/tests/xe/xe_pm.c
+++ b/tests/xe/xe_pm.c
@@ -341,6 +341,30 @@ NULL));
igt_assert(in_d3(device, d_state));
}
+static void test_pipe(device_t device, igt_display_t *display, enum pipe pipe,
+ igt_output_t *output, enum igt_acpi_d_state d_state)
+{
+ struct igt_fb fb;
+
+ igt_assert(in_d3(device, d_state));
+
+ /* Just for fun, set a scaled fb as primary so scaler is active too */
+ igt_create_fb(display->drm_fd, 640, 480, DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, &fb);
+
+ igt_assert(in_d3(device, d_state));
+
+ igt_display_reset(display);
+ igt_output_set_pipe(output, pipe);
+ igt_plane_set_fb(igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY), &fb);
+ igt_display_commit2(display, COMMIT_ATOMIC);
+ igt_assert(out_of_d3(device, d_state));
+
+ igt_display_reset(display);
+ igt_display_commit2(display, COMMIT_ATOMIC);
+ igt_remove_fb(display->drm_fd, &fb);
+ igt_assert(in_d3(device, d_state));
+}
+
igt_main
{
struct drm_xe_engine_class_instance *hwe;
@@ -363,19 +387,34 @@ igt_main
{ "d3cold", IGT_ACPI_D3Cold },
{ NULL },
};
+ enum pipe pipe;
+ igt_display_t display;
igt_fixture {
+ drmModeResPtr res;
+
memset(&device, 0, sizeof(device));
- device.fd_xe = drm_open_driver(DRIVER_XE);
+ device.fd_xe = drm_open_driver_master(DRIVER_XE);
device.pci_xe = igt_device_get_pci_device(device.fd_xe);
device.pci_root = igt_device_get_pci_root_port(device.fd_xe);
+ kmstest_set_vt_graphics_mode();
xe_device_get(device.fd_xe);
/* Always perform initial once-basic exec checking for health */
xe_for_each_hw_engine(device.fd_xe, hwe)
test_exec(device, hwe, 1, 1, NO_SUSPEND, NO_RPM);
+ /* Kill display, if it exists */
+ res = drmModeGetResources(device.fd_xe);
+ if (res) {
+ drmModeFreeResources(res);
+ igt_display_require(&display, device.fd_xe);
+ igt_display_commit2(&display, COMMIT_ATOMIC);
+ } else {
+ display.drm_fd = -1;
+ }
+
get_d3cold_allowed(device.pci_xe, d3cold_allowed);
igt_assert(igt_setup_runtime_pm(device.fd_xe));
}
@@ -435,11 +474,31 @@ igt_main
test_exec(device, hwe, 16, 32,
NO_SUSPEND, d->state);
}
+
+ for_each_pipe_static(pipe) {
+ igt_subtest_f("%s-pipe-%s", d->name, kmstest_pipe_name(pipe)) {
+ igt_output_t *output;
+ bool valid_output = false;
+
+ igt_require(display.drm_fd != -1);
+ igt_require_pipe(&display, pipe);
+ igt_assert(setup_d3(device, d->state));
+
+ for_each_valid_output_on_pipe(&display, pipe, output)
+ test_pipe(device, &display, pipe, output, d->state);
+
+ igt_require(valid_output);
+ }
+ }
}
igt_fixture {
set_d3cold_allowed(device.pci_xe, d3cold_allowed);
igt_restore_runtime_pm();
+
+ if (display.drm_fd != -1)
+ igt_display_fini(&display);
+
xe_device_put(device.fd_xe);
close(device.fd_xe);
}
[-- Attachment #2: Type: text/html, Size: 4125 bytes --]
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [igt-dev] ✗ Fi.CI.BUILD: failure for series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests (rev2)
2023-03-28 12:40 [igt-dev] [PATCH i-g-t 1/2] xe_pm: Kill display for PM tests Maarten Lankhorst
` (4 preceding siblings ...)
2023-04-03 5:37 ` [igt-dev] [PATCH i-g-t 1/2] " Zbigniew Kempczyński
@ 2023-04-03 18:32 ` Patchwork
5 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2023-04-03 18:32 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests (rev2)
URL : https://patchwork.freedesktop.org/series/115720/
State : failure
== Summary ==
Applying: xe_pm: Kill display for PM tests
Using index info to reconstruct a base tree...
Patch failed at 0001 xe_pm: Kill display for PM tests
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-04-03 18:32 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-28 12:40 [igt-dev] [PATCH i-g-t 1/2] xe_pm: Kill display for PM tests Maarten Lankhorst
2023-03-28 12:40 ` [igt-dev] [PATCH i-g-t 2/2] tests/xe: Prepare for widening drm_xe_sync.handle to 64-bits Maarten Lankhorst
2023-04-03 5:58 ` Zbigniew Kempczyński
2023-03-28 13:27 ` [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests Patchwork
2023-03-28 13:42 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2023-03-28 23:53 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2023-04-03 5:37 ` [igt-dev] [PATCH i-g-t 1/2] " Zbigniew Kempczyński
2023-04-03 14:55 ` Maarten Lankhorst
2023-04-03 18:32 ` [igt-dev] ✗ Fi.CI.BUILD: failure for series starting with [i-g-t,1/2] xe_pm: Kill display for PM tests (rev2) Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox