* [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
* 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
* [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 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