Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v2] lib/drmtest: Add function drm_reopen_driver()
@ 2023-05-10  8:44 Anna Karas
  2023-05-10  9:45 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork
  2023-05-10 11:50 ` [igt-dev] [PATCH i-g-t v2] " Kamil Konieczny
  0 siblings, 2 replies; 4+ messages in thread
From: Anna Karas @ 2023-05-10  8:44 UTC (permalink / raw)
  To: igt-dev

We need an equivalent of gem_reopen_driver() in XE. In order to not
duplicate the code, move gem_reopen_driver() one directory up from
lib/i915 to lib as drm_reopen_driver() so XE can use it too.

Rename gem_reopen_driver() across files.

v2: cache xe_device after opening the driver

Reference: VLK-46235
Signed-off-by: Anna Karas <anna.karas@intel.com>
Acked-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
 lib/drmtest.c                    | 22 ++++++++++++++++++++++
 lib/drmtest.h                    |  2 ++
 lib/i915/gem.c                   | 20 +-------------------
 lib/i915/gem.h                   |  2 --
 lib/i915/gem_ring.c              |  2 +-
 lib/i915/gem_submission.c        |  4 ++--
 tests/i915/api_intel_allocator.c |  6 +++---
 tests/i915/drm_fdinfo.c          |  2 +-
 tests/i915/gem_barrier_race.c    |  2 +-
 tests/i915/gem_close_race.c      |  4 ++--
 tests/i915/gem_concurrent_all.c  |  2 +-
 tests/i915/gem_ctx_create.c      |  2 +-
 tests/i915/gem_ctx_exec.c        |  2 +-
 tests/i915/gem_ctx_param.c       |  3 +--
 tests/i915/gem_ctx_persistence.c | 12 ++++++------
 tests/i915/gem_ctx_shared.c      |  2 +-
 tests/i915/gem_eio.c             |  2 +-
 tests/i915/gem_exec_alignment.c  |  6 +++---
 tests/i915/gem_exec_capture.c    |  2 +-
 tests/i915/gem_exec_fair.c       |  2 +-
 tests/i915/gem_exec_fence.c      |  2 +-
 tests/i915/gem_exec_nop.c        |  2 +-
 tests/i915/gem_exec_parallel.c   |  2 +-
 tests/i915/gem_exec_whisper.c    |  4 ++--
 tests/i915/gem_lmem_evict.c      |  2 +-
 tests/i915/gem_lmem_swapping.c   |  6 +++---
 tests/i915/gem_mmap_gtt.c        |  7 +++----
 tests/i915/gem_mmap_offset.c     |  9 ++++-----
 tests/i915/gem_reset_stats.c     | 30 +++++++++++++++---------------
 tests/i915/gem_ringfill.c        |  2 +-
 tests/i915/gem_softpin.c         |  2 +-
 tests/i915/gem_userptr_blits.c   |  2 +-
 tests/i915/gem_vm_create.c       |  2 +-
 tests/i915/gem_watchdog.c        |  2 +-
 tests/i915/gem_workarounds.c     |  2 +-
 tests/i915/i915_suspend.c        |  2 +-
 tests/i915/perf.c                |  2 +-
 37 files changed, 91 insertions(+), 90 deletions(-)

diff --git a/lib/drmtest.c b/lib/drmtest.c
index c91a9142..fb058441 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -49,6 +49,7 @@
 #include "drmtest.h"
 #include "i915_drm.h"
 #include "i915/gem.h"
+#include "xe/xe_query.h"
 #include "intel_chipset.h"
 #include "intel_io.h"
 #include "igt_debugfs.h"
@@ -652,6 +653,27 @@ int drm_open_driver_render(int chipset)
 	return fd;
 }
 
+/**
+ * drm_reopen_driver:
+ * @fd: re-open the drm file descriptor
+ *
+ * Re-opens the drm fd which is useful in instances where a clean default
+ * context is needed.
+ */
+int drm_reopen_driver(int fd)
+{
+	char path[256];
+
+	snprintf(path, sizeof(path), "/proc/self/fd/%d", fd);
+	fd = open(path, O_RDWR);
+	igt_assert_fd(fd);
+
+        if (is_xe_device(fd))
+                xe_device_get(fd);
+
+	return fd;
+}
+
 void igt_require_amdgpu(int fd)
 {
 	igt_require(is_amdgpu_device(fd));
diff --git a/lib/drmtest.h b/lib/drmtest.h
index 3c88b85c..ae86ee19 100644
--- a/lib/drmtest.h
+++ b/lib/drmtest.h
@@ -106,6 +106,8 @@ int __drm_open_driver_another(int idx, int chipset);
 int __drm_open_driver(int chipset);
 int __drm_open_driver_render(int chipset);
 
+int drm_reopen_driver(int fd);
+
 void igt_require_amdgpu(int fd);
 void igt_require_intel(int fd);
 void igt_require_i915(int fd);
diff --git a/lib/i915/gem.c b/lib/i915/gem.c
index ed45a9ed..6da3e5c9 100644
--- a/lib/i915/gem.c
+++ b/lib/i915/gem.c
@@ -147,7 +147,7 @@ void igt_require_gem(int i915)
 	 * of a wedged device, not for actually waiting on outstanding
 	 * requests! So create a new drm_file for the device that is clean.
 	 */
-	i915 = gem_reopen_driver(i915);
+	i915 = drm_reopen_driver(i915);
 
 	/*
 	 * Reset the global seqno at the start of each test. This ensures that
@@ -189,21 +189,3 @@ void gem_quiescent_gpu(int i915)
 	igt_drop_caches_set(i915,
 			    DROP_ACTIVE | DROP_RETIRE | DROP_IDLE | DROP_FREED);
 }
-
-/**
- * gem_reopen_driver:
- * @i915: re-open the i915 drm file descriptor
- *
- * Re-opens the drm fd which is useful in instances where a clean default
- * context is needed.
- */
-int gem_reopen_driver(int i915)
-{
-	char path[256];
-
-	snprintf(path, sizeof(path), "/proc/self/fd/%d", i915);
-	i915 = open(path, O_RDWR);
-	igt_assert_fd(i915);
-
-	return i915;
-}
diff --git a/lib/i915/gem.h b/lib/i915/gem.h
index feabac8d..06dcb546 100644
--- a/lib/i915/gem.h
+++ b/lib/i915/gem.h
@@ -30,6 +30,4 @@
 void igt_require_gem(int i915);
 void gem_quiescent_gpu(int i915);
 
-int gem_reopen_driver(int i915);
-
 #endif /* I915_GEM_H */
diff --git a/lib/i915/gem_ring.c b/lib/i915/gem_ring.c
index 6d28b5d9..eb2c7c2c 100644
--- a/lib/i915/gem_ring.c
+++ b/lib/i915/gem_ring.c
@@ -149,7 +149,7 @@ gem_measure_ring_inflight(int fd, unsigned int engine, enum measure_ring_flags f
 {
 	unsigned int min = ~0u;
 
-	fd = gem_reopen_driver(fd);
+	fd = drm_reopen_driver(fd);
 
 	/* When available, disable execbuf throttling */
 	fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | O_NONBLOCK);
diff --git a/lib/i915/gem_submission.c b/lib/i915/gem_submission.c
index 0358802e..adf5eb39 100644
--- a/lib/i915/gem_submission.c
+++ b/lib/i915/gem_submission.c
@@ -30,7 +30,6 @@
 
 #include <i915_drm.h>
 
-#include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "i915/gem_engine_topology.h"
 #include "i915/gem_submission.h"
@@ -42,6 +41,7 @@
 #include "intel_chipset.h"
 #include "intel_reg.h"
 #include "ioctl_wrappers.h"
+#include "drmtest.h"
 
 /**
  * SECTION:gem_submission
@@ -158,7 +158,7 @@ void gem_test_all_engines(int i915)
 	};
 	const intel_ctx_t *ctx;
 
-	i915 = gem_reopen_driver(i915);
+	i915 = drm_reopen_driver(i915);
 	igt_assert(!is_wedged(i915));
 
 	ctx = intel_ctx_create_all_physical(i915);
diff --git a/tests/i915/api_intel_allocator.c b/tests/i915/api_intel_allocator.c
index e9039a21..1263e0fb 100644
--- a/tests/i915/api_intel_allocator.c
+++ b/tests/i915/api_intel_allocator.c
@@ -498,7 +498,7 @@ static void reopen(int fd)
 
 	igt_require_gem(fd);
 
-	fd2 = gem_reopen_driver(fd);
+	fd2 = drm_reopen_driver(fd);
 
 	__reopen_allocs(fd, fd2, true);
 
@@ -514,7 +514,7 @@ static void reopen_fork(int fd)
 
 	intel_allocator_multiprocess_start();
 
-	fd2 = gem_reopen_driver(fd);
+	fd2 = drm_reopen_driver(fd);
 
 	igt_fork(child, 2) {
 		igt_until_timeout(REOPEN_TIMEOUT)
@@ -681,7 +681,7 @@ static void fork_reopen_allocator(int fd, uint8_t type)
 		igt_assert(!intel_allocator_is_allocated(ctx_ahnd, 1, 123, offset));
 		intel_allocator_alloc(ctx_ahnd, 2, 123, 0);
 
-		fd = gem_reopen_driver(fd);
+		fd = drm_reopen_driver(fd);
 		fd_ahnd = intel_allocator_open(fd, 0, type);
 		igt_assert(!intel_allocator_is_allocated(fd_ahnd, 1, 123, offset));
 		intel_allocator_alloc(fd_ahnd, 2, 123, 0);
diff --git a/tests/i915/drm_fdinfo.c b/tests/i915/drm_fdinfo.c
index 1b124755..ac668c29 100644
--- a/tests/i915/drm_fdinfo.c
+++ b/tests/i915/drm_fdinfo.c
@@ -201,7 +201,7 @@ single(int gem_fd, const intel_ctx_t *ctx,
 		igt_require(!gem_using_guc_submission(gem_fd));
 
 	if (flags & TEST_ISOLATION) {
-		spin_fd = gem_reopen_driver(gem_fd);
+		spin_fd = drm_reopen_driver(gem_fd);
 		ctx = intel_ctx_create_all_physical(spin_fd);
 	} else {
 		spin_fd = gem_fd;
diff --git a/tests/i915/gem_barrier_race.c b/tests/i915/gem_barrier_race.c
index f446aab6..faeec361 100644
--- a/tests/i915/gem_barrier_race.c
+++ b/tests/i915/gem_barrier_race.c
@@ -95,7 +95,7 @@ static void intel_context_first_pin_last_unpin_loop(int fd, uint64_t engine, int
 	 */
 	const uint32_t batch[2] = { 0, MI_BATCH_BUFFER_END };
 
-	fd = gem_reopen_driver(fd);
+	fd = drm_reopen_driver(fd);
 
 	do {
 		uint32_t handle = gem_create(fd, 4096);
diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c
index 9c646f42..dc88eca4 100644
--- a/tests/i915/gem_close_race.c
+++ b/tests/i915/gem_close_race.c
@@ -170,7 +170,7 @@ static void process(int fd, int child)
 {
 	uint32_t handle;
 
-	fd = gem_reopen_driver(fd);
+	fd = drm_reopen_driver(fd);
 
 	handle = load(fd);
 	if ((child & 63) == 63)
@@ -220,7 +220,7 @@ static void thread(int fd, struct drm_gem_open name,
 
 		memset(history, 0, sizeof(*history) * N_HISTORY);
 
-		crashme.fd = gem_reopen_driver(fd);
+		crashme.fd = drm_reopen_driver(fd);
 
 		memset(&its, 0, sizeof(its));
 		its.it_value.tv_nsec = msec(1) + (rand() % msec(150));
diff --git a/tests/i915/gem_concurrent_all.c b/tests/i915/gem_concurrent_all.c
index 25b7daf8..fb3b5f5d 100644
--- a/tests/i915/gem_concurrent_all.c
+++ b/tests/i915/gem_concurrent_all.c
@@ -1465,7 +1465,7 @@ static void __run_forked(struct buffers *buffers,
 		int num_buffers;
 
 		/* recreate process local variables */
-		fd = gem_reopen_driver(fd);
+		fd = drm_reopen_driver(fd);
 
 		intel_allocator_init(); /* detach from thread */
 		num_buffers = buffers->num_buffers / num_children;
diff --git a/tests/i915/gem_ctx_create.c b/tests/i915/gem_ctx_create.c
index 39f070af..a59abd08 100644
--- a/tests/i915/gem_ctx_create.c
+++ b/tests/i915/gem_ctx_create.c
@@ -106,7 +106,7 @@ static void files(int core, const intel_ctx_cfg_t *cfg,
 
 		clock_gettime(CLOCK_MONOTONIC, &start);
 		do {
-			fd = gem_reopen_driver(core);
+			fd = drm_reopen_driver(core);
 
 			ctx = intel_ctx_create(fd, cfg);
 			execbuf.rsvd1 = ctx->id;
diff --git a/tests/i915/gem_ctx_exec.c b/tests/i915/gem_ctx_exec.c
index 3d94f01d..20fa1159 100644
--- a/tests/i915/gem_ctx_exec.c
+++ b/tests/i915/gem_ctx_exec.c
@@ -282,7 +282,7 @@ static void nohangcheck_hostile(int i915)
 	 * we forcibly terminate that context.
 	 */
 
-	i915 = gem_reopen_driver(i915);
+	i915 = drm_reopen_driver(i915);
 
 	dir = igt_params_open(i915);
 	igt_require(dir != -1);
diff --git a/tests/i915/gem_ctx_param.c b/tests/i915/gem_ctx_param.c
index d119ea74..2526b09c 100644
--- a/tests/i915/gem_ctx_param.c
+++ b/tests/i915/gem_ctx_param.c
@@ -28,7 +28,6 @@
 #include <limits.h>
 
 #include "igt.h"
-#include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "i915/gem_vm.h"
 
@@ -81,7 +80,7 @@ static void set_priority(int i915)
 	igt_permute_array(values, size, igt_exchange_int64);
 
 	igt_fork(flags, NEW_CTX | USER) {
-		int fd = gem_reopen_driver(i915);
+		int fd = drm_reopen_driver(i915);
 		struct drm_i915_gem_context_param arg = {
 			.param = I915_CONTEXT_PARAM_PRIORITY,
 			.ctx_id = flags & NEW_CTX ? gem_context_create(fd) : 0,
diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
index 9fb52818..c0197cea 100644
--- a/tests/i915/gem_ctx_persistence.c
+++ b/tests/i915/gem_ctx_persistence.c
@@ -598,7 +598,7 @@ static void test_nonpersistent_file(int i915)
 	 * has been made nonpersistent, in which case it must be terminated.
 	 */
 
-	i915 = gem_reopen_driver(i915);
+	i915 = drm_reopen_driver(i915);
 
 	ahnd = get_reloc_ahnd(i915, 0);
 	gem_context_set_persistence(i915, 0, false);
@@ -742,7 +742,7 @@ static void test_process(int i915)
 		uint64_t ahnd;
 
 		intel_allocator_init();
-		i915 = gem_reopen_driver(i915);
+		i915 = drm_reopen_driver(i915);
 		gem_quiescent_gpu(i915);
 
 		gem_context_set_persistence(i915, 0, false);
@@ -790,7 +790,7 @@ static void test_userptr(int i915)
 		uint64_t ahnd;
 
 		intel_allocator_init();
-		i915 = gem_reopen_driver(i915);
+		i915 = drm_reopen_driver(i915);
 		gem_quiescent_gpu(i915);
 
 		gem_context_set_persistence(i915, 0, false);
@@ -833,7 +833,7 @@ static void test_process_mixed(int pfd, const intel_ctx_cfg_t *cfg,
 	igt_fork(child, 1) {
 		int i915;
 
-		i915 = gem_reopen_driver(pfd);
+		i915 = drm_reopen_driver(pfd);
 		gem_quiescent_gpu(i915);
 
 		for (int persists = 0; persists <= 1; persists++) {
@@ -1000,7 +1000,7 @@ static void test_processes(int i915)
 			uint64_t ahnd;
 
 			intel_allocator_init();
-			i915 = gem_reopen_driver(i915);
+			i915 = drm_reopen_driver(i915);
 			gem_context_set_persistence(i915, 0, i);
 
 			ahnd = get_reloc_ahnd(i915, 0);
@@ -1069,7 +1069,7 @@ static void __smoker(int i915, const intel_ctx_cfg_t *cfg,
 	const intel_ctx_t *ctx;
 	uint64_t ahnd;
 
-	fd = gem_reopen_driver(i915);
+	fd = drm_reopen_driver(i915);
 	ctx = ctx_create_persistence(fd, cfg, expected > 0);
 	ahnd = get_reloc_ahnd(fd, ctx->id);
 	spin = igt_spin_new(fd, .ahnd = ahnd, .ctx = ctx, .engine = engine,
diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
index 3d73db58..8629992e 100644
--- a/tests/i915/gem_ctx_shared.c
+++ b/tests/i915/gem_ctx_shared.c
@@ -206,7 +206,7 @@ static void exhaust_shared_gtt(int i915, unsigned int flags)
 		},
 	};
 
-	i915 = gem_reopen_driver(i915);
+	i915 = drm_reopen_driver(i915);
 
 	vm_create_ext.param.value = gem_vm_create(i915);
 
diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 8dbaa7a7..81e55e16 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -450,7 +450,7 @@ static void set_heartbeat(int i915, int interval)
 
 static int reopen_device(int i915)
 {
-	i915 = gem_reopen_driver(i915);
+	i915 = drm_reopen_driver(i915);
 	igt_require_gem(i915);
 	set_heartbeat(i915, 250); /* require gem restores defaults */
 
diff --git a/tests/i915/gem_exec_alignment.c b/tests/i915/gem_exec_alignment.c
index a9fcd2a7..5059572f 100644
--- a/tests/i915/gem_exec_alignment.c
+++ b/tests/i915/gem_exec_alignment.c
@@ -158,7 +158,7 @@ naughty_child(int i915, int link, uint32_t shared, unsigned int flags)
 	uint64_t elapsed;
 
 	if (flags & ISOLATED)
-		i915 = gem_reopen_driver(i915);
+		i915 = drm_reopen_driver(i915);
 
 	if (!(flags & SHARED))
 		shared = 0;
@@ -449,7 +449,7 @@ static void forked(int i915, int timeout)
 	struct drm_i915_gem_exec_object2 *obj;
 	unsigned long count;
 
-	i915 = gem_reopen_driver(i915);
+	i915 = drm_reopen_driver(i915);
 	igt_require(gem_uses_full_ppgtt(i915));
 
 	obj = setup_many(i915, &count);
@@ -457,7 +457,7 @@ static void forked(int i915, int timeout)
 		obj[i].handle = gem_flink(i915, obj[i].handle);
 
 	igt_fork(child, sysconf(_SC_NPROCESSORS_ONLN)) {
-		i915 = gem_reopen_driver(i915);
+		i915 = drm_reopen_driver(i915);
 		for (unsigned long i = 0; i < count; i++)
 			obj[i].handle = gem_open(i915, obj[i].handle);
 		__many(i915, timeout, obj, count);
diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
index 9c391192..5d3e0905 100644
--- a/tests/i915/gem_exec_capture.c
+++ b/tests/i915/gem_exec_capture.c
@@ -714,7 +714,7 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
 	igt_fork(child, 1) {
 		const intel_ctx_t *ctx2;
 		int fence_out;
-		fd = gem_reopen_driver(fd);
+		fd = drm_reopen_driver(fd);
 		igt_debug("Submitting large capture [%ld x %dMiB objects]\n",
 			  count, (int)(size >> 20));
 
diff --git a/tests/i915/gem_exec_fair.c b/tests/i915/gem_exec_fair.c
index 8208ab40..67af4739 100644
--- a/tests/i915/gem_exec_fair.c
+++ b/tests/i915/gem_exec_fair.c
@@ -728,7 +728,7 @@ static void fairness(int i915, const intel_ctx_cfg_t *cfg,
 				if (common)
 					dmabuf = prime_handle_to_fd(i915, common);
 
-				i915 = gem_reopen_driver(i915);
+				i915 = drm_reopen_driver(i915);
 
 				if (dmabuf != -1)
 					common = prime_fd_to_handle(i915, dmabuf);
diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
index c2d874f8..70f86da5 100644
--- a/tests/i915/gem_exec_fence.c
+++ b/tests/i915/gem_exec_fence.c
@@ -1655,7 +1655,7 @@ static void test_invalid_timeline_fence_array(int fd)
 	uint64_t value;
 	void *ptr;
 
-	fd = gem_reopen_driver(fd);
+	fd = drm_reopen_driver(fd);
 
 	/* create an otherwise valid execbuf */
 	memset(&obj, 0, sizeof(obj));
diff --git a/tests/i915/gem_exec_nop.c b/tests/i915/gem_exec_nop.c
index 497f57f0..f1ec23e8 100644
--- a/tests/i915/gem_exec_nop.c
+++ b/tests/i915/gem_exec_nop.c
@@ -608,7 +608,7 @@ static void multiple(int fd, const intel_ctx_t *ctx,
 		int i915;
 		const intel_ctx_t *child_ctx;
 
-		i915 = gem_reopen_driver(fd);
+		i915 = drm_reopen_driver(fd);
 		child_ctx = intel_ctx_create(i915, &ctx->cfg);
 		execbuf.rsvd1 = child_ctx->id;
 
diff --git a/tests/i915/gem_exec_parallel.c b/tests/i915/gem_exec_parallel.c
index 705b22cb..97257ea4 100644
--- a/tests/i915/gem_exec_parallel.c
+++ b/tests/i915/gem_exec_parallel.c
@@ -86,7 +86,7 @@ static void *thread(void *data)
 	pthread_mutex_unlock(t->mutex);
 
 	if (t->flags & FDS) {
-		fd = gem_reopen_driver(t->fd);
+		fd = drm_reopen_driver(t->fd);
 	} else {
 		fd = t->fd;
 	}
diff --git a/tests/i915/gem_exec_whisper.c b/tests/i915/gem_exec_whisper.c
index 29d96cdc..80e4b391 100644
--- a/tests/i915/gem_exec_whisper.c
+++ b/tests/i915/gem_exec_whisper.c
@@ -98,7 +98,7 @@ static void init_hang(struct hang *h, int fd, const intel_ctx_cfg_t *cfg)
 	uint32_t *batch;
 	int i, gen;
 
-	h->fd = gem_reopen_driver(fd);
+	h->fd = drm_reopen_driver(fd);
 	igt_allow_hang(h->fd, 0, 0);
 
 	gen = intel_gen(intel_get_drm_devid(h->fd));
@@ -329,7 +329,7 @@ static void whisper(int fd, const intel_ctx_t *ctx,
 
 		if (flags & FDS) {
 			for (n = 0; n < 64; n++) {
-				fds[n] = gem_reopen_driver(fd);
+				fds[n] = drm_reopen_driver(fd);
 			}
 		}
 		if (flags & (CONTEXTS | QUEUES | FDS)) {
diff --git a/tests/i915/gem_lmem_evict.c b/tests/i915/gem_lmem_evict.c
index 71a066de..d2611bd5 100644
--- a/tests/i915/gem_lmem_evict.c
+++ b/tests/i915/gem_lmem_evict.c
@@ -57,7 +57,7 @@ static void test_dontneed_evict_race(int fd,
 	igt_fork(child, 1) {
 		uint32_t handle2;
 
-		fd = gem_reopen_driver(fd);
+		fd = drm_reopen_driver(fd);
 
 		handle2 = gem_create_in_memory_region_list(fd,
 							   size, 0,
diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c
index 55b044ec..4177286b 100644
--- a/tests/i915/gem_lmem_swapping.c
+++ b/tests/i915/gem_lmem_swapping.c
@@ -539,7 +539,7 @@ static void test_evict(int i915,
 	fill_params(i915, &params, region, flags, nproc, false);
 
 	if (flags & TEST_PARALLEL) {
-		int fd = gem_reopen_driver(i915);
+		int fd = drm_reopen_driver(i915);
 
 		intel_allocator_multiprocess_start();
 		ctx = intel_ctx_create_all_physical(fd);
@@ -610,7 +610,7 @@ static void test_smem_oom(int i915,
 
 	/* process for testing lmem eviction */
 	igt_fork(child, 1) {
-		int fd = gem_reopen_driver(i915);
+		int fd = drm_reopen_driver(i915);
 		struct params params;
 
 		fill_params(i915, &params, region, 0, 1, true);
@@ -637,7 +637,7 @@ static void test_smem_oom(int i915,
 				}
 			}
 			igt_fork(child, 1) {
-				int fd = gem_reopen_driver(i915);
+				int fd = drm_reopen_driver(i915);
 
 				for (int pass = 0; pass < num_alloc; pass++) {
 					if (READ_ONCE(*lmem_done))
diff --git a/tests/i915/gem_mmap_gtt.c b/tests/i915/gem_mmap_gtt.c
index c14ab50e..0b3a6e5b 100644
--- a/tests/i915/gem_mmap_gtt.c
+++ b/tests/i915/gem_mmap_gtt.c
@@ -41,7 +41,6 @@
 #include <sys/wait.h>
 #include "drm.h"
 
-#include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_sysfs.h"
@@ -360,8 +359,8 @@ static void
 test_isolation(int i915)
 {
 	struct drm_i915_gem_mmap_gtt mmap_arg;
-	int A = gem_reopen_driver(i915);
-	int B = gem_reopen_driver(i915);
+	int A = drm_reopen_driver(i915);
+	int B = drm_reopen_driver(i915);
 	uint64_t offset_a, offset_b;
 	uint32_t a, b;
 	void *ptr;
@@ -448,7 +447,7 @@ test_flink_race(int i915)
 	igt_assert(handles != MAP_FAILED);
 
 	igt_fork(child, ncpus + 1) {
-		int fd = gem_reopen_driver(i915);
+		int fd = drm_reopen_driver(i915);
 
 		do {
 			struct drm_i915_gem_mmap_gtt mmap_arg = {};
diff --git a/tests/i915/gem_mmap_offset.c b/tests/i915/gem_mmap_offset.c
index 962fc1b7..e7659e30 100644
--- a/tests/i915/gem_mmap_offset.c
+++ b/tests/i915/gem_mmap_offset.c
@@ -33,7 +33,6 @@
 #include <unistd.h>
 #include "drm.h"
 
-#include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "i915/intel_memory_region.h"
 #include "igt.h"
@@ -299,8 +298,8 @@ static void isolation(int i915)
 			struct drm_i915_gem_mmap_offset mmap_arg = {
 				.flags = t->type
 			};
-			int A = gem_reopen_driver(i915);
-			int B = gem_reopen_driver(i915);
+			int A = drm_reopen_driver(i915);
+			int B = drm_reopen_driver(i915);
 			uint64_t offset_a, offset_b;
 			uint32_t a, b;
 			void *ptr;
@@ -622,7 +621,7 @@ static void open_flood(int i915, int timeout)
 			continue;
 
 		igt_fork(child, 1) {
-			i915 = gem_reopen_driver(i915);
+			i915 = drm_reopen_driver(i915);
 			arg.handle = prime_fd_to_handle(i915, dmabuf);
 
 			do {
@@ -636,7 +635,7 @@ static void open_flood(int i915, int timeout)
 	igt_until_timeout(timeout) {
 		int tmp;
 
-		tmp = gem_reopen_driver(i915);
+		tmp = drm_reopen_driver(i915);
 		handle = prime_fd_to_handle(i915, dmabuf);
 
 		for_each_mmap_offset_type(i915, t) {
diff --git a/tests/i915/gem_reset_stats.c b/tests/i915/gem_reset_stats.c
index 7b003d88..ddc61781 100644
--- a/tests/i915/gem_reset_stats.c
+++ b/tests/i915/gem_reset_stats.c
@@ -267,7 +267,7 @@ static void test_rs(const struct intel_execution_ring *e,
 	igt_debug("num fds=%d, hang index=%d\n", num_fds, hang_index);
 
 	for (i = 0; i < num_fds; i++) {
-		fd[i] = gem_reopen_driver(device);
+		fd[i] = drm_reopen_driver(device);
 		assert_reset_status(i, fd[i], 0, RS_NO_ERROR);
 	}
 
@@ -318,7 +318,7 @@ static void test_rs_ctx(const struct intel_execution_ring *e,
 	test_rs(e, num_fds, -1, RS_NO_ERROR);
 
 	for (i = 0; i < num_fds; i++) {
-		fd[i] = gem_reopen_driver(device);
+		fd[i] = drm_reopen_driver(device);
 		igt_assert(fd[i]);
 		assert_reset_status(i, fd[i], 0, RS_NO_ERROR);
 
@@ -384,8 +384,8 @@ static void test_ban(const struct intel_execution_ring *e)
 	int ban, retry = 10;
 	int active_count = 0;
 
-	fd_bad = gem_reopen_driver(device);
-	fd_good = gem_reopen_driver(device);
+	fd_bad = drm_reopen_driver(device);
+	fd_good = drm_reopen_driver(device);
 
 	assert_reset_status(fd_bad, fd_bad, 0, RS_NO_ERROR);
 	assert_reset_status(fd_good, fd_good, 0, RS_NO_ERROR);
@@ -438,7 +438,7 @@ static void test_ban_ctx(const struct intel_execution_ring *e)
 	uint32_t ctx_good, ctx_bad;
 	int active_count = 0;
 
-	fd = gem_reopen_driver(device);
+	fd = drm_reopen_driver(device);
 
 	assert_reset_status(fd, fd, 0, RS_NO_ERROR);
 
@@ -494,8 +494,8 @@ static void test_unrelated_ctx(const struct intel_execution_ring *e)
 	int fd1,fd2;
 	int ctx_guilty, ctx_unrelated;
 
-	fd1 = gem_reopen_driver(device);
-	fd2 = gem_reopen_driver(device);
+	fd1 = drm_reopen_driver(device);
+	fd2 = drm_reopen_driver(device);
 	assert_reset_status(0, fd1, 0, RS_NO_ERROR);
 	assert_reset_status(1, fd2, 0, RS_NO_ERROR);
 	ctx_guilty = gem_context_create(fd1);
@@ -530,7 +530,7 @@ static int get_reset_count(int fd, int ctx)
 
 static void test_close_pending_ctx(const struct intel_execution_ring *e)
 {
-	int fd = gem_reopen_driver(device);
+	int fd = drm_reopen_driver(device);
 	uint32_t ctx = gem_context_create(fd);
 
 	assert_reset_status(fd, fd, ctx, RS_NO_ERROR);
@@ -544,7 +544,7 @@ static void test_close_pending_ctx(const struct intel_execution_ring *e)
 
 static void test_close_pending(const struct intel_execution_ring *e)
 {
-	int fd = gem_reopen_driver(device);
+	int fd = drm_reopen_driver(device);
 
 	assert_reset_status(fd, fd, 0, RS_NO_ERROR);
 
@@ -588,7 +588,7 @@ static void noop_on_each_ring(int fd, const bool reverse)
 static void test_close_pending_fork(const struct intel_execution_ring *e,
 				    const bool reverse)
 {
-	int fd = gem_reopen_driver(device);
+	int fd = drm_reopen_driver(device);
 	igt_hang_t hang;
 	int pid;
 
@@ -603,7 +603,7 @@ static void test_close_pending_fork(const struct intel_execution_ring *e,
 	 */
 	pid = fork();
 	if (pid == 0) {
-		const int fd2 = gem_reopen_driver(device);
+		const int fd2 = drm_reopen_driver(device);
 		igt_assert_lte(0, fd2);
 
 		/* The crucial component is that we schedule the same noop batch
@@ -630,7 +630,7 @@ static void test_close_pending_fork(const struct intel_execution_ring *e,
 static void test_reset_count(const struct intel_execution_ring *e,
 			     const bool create_ctx)
 {
-	int fd = gem_reopen_driver(device);
+	int fd = drm_reopen_driver(device);
 	int ctx;
 	long c1, c2;
 
@@ -733,7 +733,7 @@ static void test_params_ctx(void)
 {
 	int fd;
 
-	fd = gem_reopen_driver(device);
+	fd = drm_reopen_driver(device);
 	_test_param(fd, gem_context_create(fd));
 	close(fd);
 }
@@ -742,7 +742,7 @@ static void test_params(void)
 {
 	int fd;
 
-	fd = gem_reopen_driver(device);
+	fd = drm_reopen_driver(device);
 	_test_param(fd, 0);
 	close(fd);
 }
@@ -767,7 +767,7 @@ static void defer_hangcheck(const struct intel_execution_ring *engine)
 	int fd, count_start, count_end;
 	int seconds = 30;
 
-	fd = gem_reopen_driver(device);
+	fd = drm_reopen_driver(device);
 
 	next = next_engine(fd, engine);
 	igt_skip_on(next == engine);
diff --git a/tests/i915/gem_ringfill.c b/tests/i915/gem_ringfill.c
index afcd7b73..de6e26bf 100644
--- a/tests/i915/gem_ringfill.c
+++ b/tests/i915/gem_ringfill.c
@@ -219,7 +219,7 @@ static void run_test(int fd, const intel_ctx_t *ctx, unsigned ring,
 		igt_fork(child, nchild) {
 			const intel_ctx_t *child_ctx = NULL;
 			if (flags & NEWFD) {
-				fd = gem_reopen_driver(fd);
+				fd = drm_reopen_driver(fd);
 				child_ctx = intel_ctx_create(fd, &ctx->cfg);
 
 				setup_execbuf(fd, child_ctx, &execbuf, obj, reloc, ring);
diff --git a/tests/i915/gem_softpin.c b/tests/i915/gem_softpin.c
index 8717860b..933daa4a 100644
--- a/tests/i915/gem_softpin.c
+++ b/tests/i915/gem_softpin.c
@@ -1160,7 +1160,7 @@ static void *thread(void *data)
 	uint32_t batch = MI_BATCH_BUFFER_END;
 	int fd, ret, succeeded = 0;
 
-	fd = gem_reopen_driver(t->fd);
+	fd = drm_reopen_driver(t->fd);
 	ctx = intel_ctx_create(fd, &t->ctx->cfg);
 	offset_obj = gem_detect_safe_start_offset(fd);
 	offset_bb = ALIGN(offset_obj + 4096, gem_detect_safe_alignment(fd));
diff --git a/tests/i915/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c
index b00afc32..baba7cf3 100644
--- a/tests/i915/gem_userptr_blits.c
+++ b/tests/i915/gem_userptr_blits.c
@@ -669,7 +669,7 @@ static void test_nohangcheck_hostile(int i915)
 	 * Even if the user disables hangcheck, we must still recover.
 	 */
 
-	i915 = gem_reopen_driver(i915);
+	i915 = drm_reopen_driver(i915);
 	gem_require_contexts(i915);
 
 	dir = igt_params_open(i915);
diff --git a/tests/i915/gem_vm_create.c b/tests/i915/gem_vm_create.c
index f47d8c55..44958cce 100644
--- a/tests/i915/gem_vm_create.c
+++ b/tests/i915/gem_vm_create.c
@@ -306,7 +306,7 @@ static void isolation(int i915)
 	struct drm_i915_gem_context_param arg = {
 		.param = I915_CONTEXT_PARAM_VM,
 	};
-	int other = gem_reopen_driver(i915);
+	int other = drm_reopen_driver(i915);
 	uint32_t ctx[2], vm[2], result;
 	int loops = 4096;
 
diff --git a/tests/i915/gem_watchdog.c b/tests/i915/gem_watchdog.c
index 27f3a2d7..47ccd2ca 100644
--- a/tests/i915/gem_watchdog.c
+++ b/tests/i915/gem_watchdog.c
@@ -564,7 +564,7 @@ igt_main
 					timeout * 1000);
 		default_timeout_wait_s = timeout * 5;
 
-		i915 = gem_reopen_driver(i915); /* Apply modparam. */
+		i915 = drm_reopen_driver(i915); /* Apply modparam. */
 		ctx = intel_ctx_create_all_physical(i915);
 	}
 
diff --git a/tests/i915/gem_workarounds.c b/tests/i915/gem_workarounds.c
index 7d119962..ae544adb 100644
--- a/tests/i915/gem_workarounds.c
+++ b/tests/i915/gem_workarounds.c
@@ -198,7 +198,7 @@ static void check_workarounds(int fd, enum operation op, unsigned int flags)
 	const intel_ctx_t *ctx;
 
 	if (flags & FD)
-		fd = gem_reopen_driver(fd);
+		fd = drm_reopen_driver(fd);
 
 	ctx = intel_ctx_0(fd);
 	if (flags & CONTEXT) {
diff --git a/tests/i915/i915_suspend.c b/tests/i915/i915_suspend.c
index a9507964..5b289ecb 100644
--- a/tests/i915/i915_suspend.c
+++ b/tests/i915/i915_suspend.c
@@ -178,7 +178,7 @@ test_shrink(int fd, unsigned int mode)
 	gem_quiescent_gpu(fd);
 
 	igt_multi_fork(child, 1) {
-		fd = gem_reopen_driver(fd);
+		fd = drm_reopen_driver(fd);
 		igt_purge_vm_caches(fd);
 
 		mem = igt_get_total_pinnable_mem(&size);
diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 9ca4d34b..cd73b1a9 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -4513,7 +4513,7 @@ gen12_test_single_ctx_render_target_writes_a_counter(const struct intel_executio
 	do {
 		igt_fork_helper(&child) {
 			/* A local device for local resources. */
-			drm_fd = gem_reopen_driver(drm_fd);
+			drm_fd = drm_reopen_driver(drm_fd);
 
 			igt_drop_root();
 			gen12_single_ctx_helper(e);
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [igt-dev] ✗ Fi.CI.BAT: failure for lib/drmtest: Add function drm_reopen_driver()
  2023-05-10  8:44 [igt-dev] [PATCH i-g-t v2] lib/drmtest: Add function drm_reopen_driver() Anna Karas
@ 2023-05-10  9:45 ` Patchwork
  2023-05-10 11:50 ` [igt-dev] [PATCH i-g-t v2] " Kamil Konieczny
  1 sibling, 0 replies; 4+ messages in thread
From: Patchwork @ 2023-05-10  9:45 UTC (permalink / raw)
  To: Anna Karas; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 7270 bytes --]

== Series Details ==

Series: lib/drmtest: Add function drm_reopen_driver()
URL   : https://patchwork.freedesktop.org/series/117565/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_13129 -> IGTPW_8939
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_8939 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_8939, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/index.html

Participating hosts (41 -> 40)
------------------------------

  Missing    (1): fi-snb-2520m 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_8939:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_flip@basic-flip-vs-modeset@c-dp1:
    - bat-adlp-9:         [PASS][1] -> [FAIL][2] +2 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13129/bat-adlp-9/igt@kms_flip@basic-flip-vs-modeset@c-dp1.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/bat-adlp-9/igt@kms_flip@basic-flip-vs-modeset@c-dp1.html

  
New tests
---------

  New tests have been introduced between CI_DRM_13129 and IGTPW_8939:

### New IGT tests (4) ###

  * igt@i915_suspend@basic-s2idle-without-i915:
    - Statuses : 34 pass(s)
    - Exec time: [0.0] s

  * igt@i915_suspend@basic-s3-without-i915:
    - Statuses : 1 abort(s) 1 incomplete(s) 27 pass(s) 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_pipe_crc_basic@read-crc:
    - Statuses : 12 skip(s)
    - Exec time: [0.0] s

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence:
    - Statuses : 12 skip(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in IGTPW_8939 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_backlight@basic-brightness@edp-1:
    - bat-rplp-1:         NOTRUN -> [ABORT][3] ([i915#7077])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/bat-rplp-1/igt@i915_pm_backlight@basic-brightness@edp-1.html

  * igt@i915_selftest@live@requests:
    - bat-rpls-2:         [PASS][4] -> [ABORT][5] ([i915#4983] / [i915#7913])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13129/bat-rpls-2/igt@i915_selftest@live@requests.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/bat-rpls-2/igt@i915_selftest@live@requests.html

  * igt@i915_suspend@basic-s3-without-i915 (NEW):
    - {bat-mtlp-6}:       NOTRUN -> [SKIP][6] ([i915#6645])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/bat-mtlp-6/igt@i915_suspend@basic-s3-without-i915.html
    - {bat-mtlp-8}:       NOTRUN -> [SKIP][7] ([i915#6645])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/bat-mtlp-8/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_flip@basic-flip-vs-modeset@a-dp1:
    - bat-adlp-9:         [PASS][8] -> [FAIL][9] ([i915#4190])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13129/bat-adlp-9/igt@kms_flip@basic-flip-vs-modeset@a-dp1.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/bat-adlp-9/igt@kms_flip@basic-flip-vs-modeset@a-dp1.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1:
    - bat-dg2-8:          [PASS][10] -> [FAIL][11] ([i915#7932])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13129/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence (NEW):
    - bat-adlp-9:         NOTRUN -> [SKIP][12] ([i915#3546]) +2 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/bat-adlp-9/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-kbl-soraka:      [DMESG-FAIL][13] ([i915#5334] / [i915#7872]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13129/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@requests:
    - {bat-mtlp-8}:       [ABORT][15] ([i915#4983] / [i915#7920] / [i915#7953]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13129/bat-mtlp-8/igt@i915_selftest@live@requests.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/bat-mtlp-8/igt@i915_selftest@live@requests.html
    - {bat-mtlp-6}:       [ABORT][17] ([i915#4983] / [i915#7920] / [i915#7953]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13129/bat-mtlp-6/igt@i915_selftest@live@requests.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/bat-mtlp-6/igt@i915_selftest@live@requests.html

  
#### Warnings ####

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-rplp-1:         [ABORT][19] -> [SKIP][20] ([i915#3555] / [i915#4579])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13129/bat-rplp-1/igt@kms_setmode@basic-clone-single-crtc.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/bat-rplp-1/igt@kms_setmode@basic-clone-single-crtc.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4190]: https://gitlab.freedesktop.org/drm/intel/issues/4190
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
  [i915#7077]: https://gitlab.freedesktop.org/drm/intel/issues/7077
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7872]: https://gitlab.freedesktop.org/drm/intel/issues/7872
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7920]: https://gitlab.freedesktop.org/drm/intel/issues/7920
  [i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
  [i915#7953]: https://gitlab.freedesktop.org/drm/intel/issues/7953


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7285 -> IGTPW_8939

  CI-20190529: 20190529
  CI_DRM_13129: 451e49cfbaa90720149e63f4fa9c7824013c783d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8939: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/index.html
  IGT_7285: d1cbf2bad9c2664ab8bd3bd0946510a52800912f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8939/index.html

[-- Attachment #2: Type: text/html, Size: 8347 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v2] lib/drmtest: Add function drm_reopen_driver()
  2023-05-10  8:44 [igt-dev] [PATCH i-g-t v2] lib/drmtest: Add function drm_reopen_driver() Anna Karas
  2023-05-10  9:45 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork
@ 2023-05-10 11:50 ` Kamil Konieczny
  2023-05-11  5:50   ` Zbigniew Kempczyński
  1 sibling, 1 reply; 4+ messages in thread
From: Kamil Konieczny @ 2023-05-10 11:50 UTC (permalink / raw)
  To: igt-dev

Hi,

On 2023-05-10 at 10:44:51 +0200, Anna Karas wrote:
> We need an equivalent of gem_reopen_driver() in XE. In order to not
> duplicate the code, move gem_reopen_driver() one directory up from
> lib/i915 to lib as drm_reopen_driver() so XE can use it too.
> 
> Rename gem_reopen_driver() across files.
> 
> v2: cache xe_device after opening the driver
> 
> Reference: VLK-46235
> Signed-off-by: Anna Karas <anna.karas@intel.com>
> Acked-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> ---
>  lib/drmtest.c                    | 22 ++++++++++++++++++++++
>  lib/drmtest.h                    |  2 ++
>  lib/i915/gem.c                   | 20 +-------------------
>  lib/i915/gem.h                   |  2 --
>  lib/i915/gem_ring.c              |  2 +-
>  lib/i915/gem_submission.c        |  4 ++--
>  tests/i915/api_intel_allocator.c |  6 +++---
>  tests/i915/drm_fdinfo.c          |  2 +-
>  tests/i915/gem_barrier_race.c    |  2 +-
>  tests/i915/gem_close_race.c      |  4 ++--
>  tests/i915/gem_concurrent_all.c  |  2 +-
>  tests/i915/gem_ctx_create.c      |  2 +-
>  tests/i915/gem_ctx_exec.c        |  2 +-
>  tests/i915/gem_ctx_param.c       |  3 +--
>  tests/i915/gem_ctx_persistence.c | 12 ++++++------
>  tests/i915/gem_ctx_shared.c      |  2 +-
>  tests/i915/gem_eio.c             |  2 +-
>  tests/i915/gem_exec_alignment.c  |  6 +++---
>  tests/i915/gem_exec_capture.c    |  2 +-
>  tests/i915/gem_exec_fair.c       |  2 +-
>  tests/i915/gem_exec_fence.c      |  2 +-
>  tests/i915/gem_exec_nop.c        |  2 +-
>  tests/i915/gem_exec_parallel.c   |  2 +-
>  tests/i915/gem_exec_whisper.c    |  4 ++--
>  tests/i915/gem_lmem_evict.c      |  2 +-
>  tests/i915/gem_lmem_swapping.c   |  6 +++---
>  tests/i915/gem_mmap_gtt.c        |  7 +++----
>  tests/i915/gem_mmap_offset.c     |  9 ++++-----
>  tests/i915/gem_reset_stats.c     | 30 +++++++++++++++---------------
>  tests/i915/gem_ringfill.c        |  2 +-
>  tests/i915/gem_softpin.c         |  2 +-
>  tests/i915/gem_userptr_blits.c   |  2 +-
>  tests/i915/gem_vm_create.c       |  2 +-
>  tests/i915/gem_watchdog.c        |  2 +-
>  tests/i915/gem_workarounds.c     |  2 +-
>  tests/i915/i915_suspend.c        |  2 +-
>  tests/i915/perf.c                |  2 +-
>  37 files changed, 91 insertions(+), 90 deletions(-)
> 
> diff --git a/lib/drmtest.c b/lib/drmtest.c
> index c91a9142..fb058441 100644
> --- a/lib/drmtest.c
> +++ b/lib/drmtest.c
> @@ -49,6 +49,7 @@
>  #include "drmtest.h"
>  #include "i915_drm.h"
>  #include "i915/gem.h"
> +#include "xe/xe_query.h"
>  #include "intel_chipset.h"
>  #include "intel_io.h"
>  #include "igt_debugfs.h"
> @@ -652,6 +653,27 @@ int drm_open_driver_render(int chipset)
>  	return fd;
>  }
>  
> +/**
> + * drm_reopen_driver:
> + * @fd: re-open the drm file descriptor
> + *
> + * Re-opens the drm fd which is useful in instances where a clean default
> + * context is needed.
> + */
> +int drm_reopen_driver(int fd)
> +{
> +	char path[256];
> +
> +	snprintf(path, sizeof(path), "/proc/self/fd/%d", fd);
> +	fd = open(path, O_RDWR);
> +	igt_assert_fd(fd);
> +
> +        if (is_xe_device(fd))
> +                xe_device_get(fd);
> +
> +	return fd;
> +}
> +

LGTM,
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

>  void igt_require_amdgpu(int fd)
>  {
>  	igt_require(is_amdgpu_device(fd));
> diff --git a/lib/drmtest.h b/lib/drmtest.h
> index 3c88b85c..ae86ee19 100644
> --- a/lib/drmtest.h
> +++ b/lib/drmtest.h
> @@ -106,6 +106,8 @@ int __drm_open_driver_another(int idx, int chipset);
>  int __drm_open_driver(int chipset);
>  int __drm_open_driver_render(int chipset);
>  
> +int drm_reopen_driver(int fd);
> +
>  void igt_require_amdgpu(int fd);
>  void igt_require_intel(int fd);
>  void igt_require_i915(int fd);
> diff --git a/lib/i915/gem.c b/lib/i915/gem.c
> index ed45a9ed..6da3e5c9 100644
> --- a/lib/i915/gem.c
> +++ b/lib/i915/gem.c
> @@ -147,7 +147,7 @@ void igt_require_gem(int i915)
>  	 * of a wedged device, not for actually waiting on outstanding
>  	 * requests! So create a new drm_file for the device that is clean.
>  	 */
> -	i915 = gem_reopen_driver(i915);
> +	i915 = drm_reopen_driver(i915);
>  
>  	/*
>  	 * Reset the global seqno at the start of each test. This ensures that
> @@ -189,21 +189,3 @@ void gem_quiescent_gpu(int i915)
>  	igt_drop_caches_set(i915,
>  			    DROP_ACTIVE | DROP_RETIRE | DROP_IDLE | DROP_FREED);
>  }
> -
> -/**
> - * gem_reopen_driver:
> - * @i915: re-open the i915 drm file descriptor
> - *
> - * Re-opens the drm fd which is useful in instances where a clean default
> - * context is needed.
> - */
> -int gem_reopen_driver(int i915)
> -{
> -	char path[256];
> -
> -	snprintf(path, sizeof(path), "/proc/self/fd/%d", i915);
> -	i915 = open(path, O_RDWR);
> -	igt_assert_fd(i915);
> -
> -	return i915;
> -}
> diff --git a/lib/i915/gem.h b/lib/i915/gem.h
> index feabac8d..06dcb546 100644
> --- a/lib/i915/gem.h
> +++ b/lib/i915/gem.h
> @@ -30,6 +30,4 @@
>  void igt_require_gem(int i915);
>  void gem_quiescent_gpu(int i915);
>  
> -int gem_reopen_driver(int i915);
> -
>  #endif /* I915_GEM_H */
> diff --git a/lib/i915/gem_ring.c b/lib/i915/gem_ring.c
> index 6d28b5d9..eb2c7c2c 100644
> --- a/lib/i915/gem_ring.c
> +++ b/lib/i915/gem_ring.c
> @@ -149,7 +149,7 @@ gem_measure_ring_inflight(int fd, unsigned int engine, enum measure_ring_flags f
>  {
>  	unsigned int min = ~0u;
>  
> -	fd = gem_reopen_driver(fd);
> +	fd = drm_reopen_driver(fd);
>  
>  	/* When available, disable execbuf throttling */
>  	fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | O_NONBLOCK);
> diff --git a/lib/i915/gem_submission.c b/lib/i915/gem_submission.c
> index 0358802e..adf5eb39 100644
> --- a/lib/i915/gem_submission.c
> +++ b/lib/i915/gem_submission.c
> @@ -30,7 +30,6 @@
>  
>  #include <i915_drm.h>
>  
> -#include "i915/gem.h"
>  #include "i915/gem_create.h"
>  #include "i915/gem_engine_topology.h"
>  #include "i915/gem_submission.h"
> @@ -42,6 +41,7 @@
>  #include "intel_chipset.h"
>  #include "intel_reg.h"
>  #include "ioctl_wrappers.h"
> +#include "drmtest.h"
>  
>  /**
>   * SECTION:gem_submission
> @@ -158,7 +158,7 @@ void gem_test_all_engines(int i915)
>  	};
>  	const intel_ctx_t *ctx;
>  
> -	i915 = gem_reopen_driver(i915);
> +	i915 = drm_reopen_driver(i915);
>  	igt_assert(!is_wedged(i915));
>  
>  	ctx = intel_ctx_create_all_physical(i915);
> diff --git a/tests/i915/api_intel_allocator.c b/tests/i915/api_intel_allocator.c
> index e9039a21..1263e0fb 100644
> --- a/tests/i915/api_intel_allocator.c
> +++ b/tests/i915/api_intel_allocator.c
> @@ -498,7 +498,7 @@ static void reopen(int fd)
>  
>  	igt_require_gem(fd);
>  
> -	fd2 = gem_reopen_driver(fd);
> +	fd2 = drm_reopen_driver(fd);
>  
>  	__reopen_allocs(fd, fd2, true);
>  
> @@ -514,7 +514,7 @@ static void reopen_fork(int fd)
>  
>  	intel_allocator_multiprocess_start();
>  
> -	fd2 = gem_reopen_driver(fd);
> +	fd2 = drm_reopen_driver(fd);
>  
>  	igt_fork(child, 2) {
>  		igt_until_timeout(REOPEN_TIMEOUT)
> @@ -681,7 +681,7 @@ static void fork_reopen_allocator(int fd, uint8_t type)
>  		igt_assert(!intel_allocator_is_allocated(ctx_ahnd, 1, 123, offset));
>  		intel_allocator_alloc(ctx_ahnd, 2, 123, 0);
>  
> -		fd = gem_reopen_driver(fd);
> +		fd = drm_reopen_driver(fd);
>  		fd_ahnd = intel_allocator_open(fd, 0, type);
>  		igt_assert(!intel_allocator_is_allocated(fd_ahnd, 1, 123, offset));
>  		intel_allocator_alloc(fd_ahnd, 2, 123, 0);
> diff --git a/tests/i915/drm_fdinfo.c b/tests/i915/drm_fdinfo.c
> index 1b124755..ac668c29 100644
> --- a/tests/i915/drm_fdinfo.c
> +++ b/tests/i915/drm_fdinfo.c
> @@ -201,7 +201,7 @@ single(int gem_fd, const intel_ctx_t *ctx,
>  		igt_require(!gem_using_guc_submission(gem_fd));
>  
>  	if (flags & TEST_ISOLATION) {
> -		spin_fd = gem_reopen_driver(gem_fd);
> +		spin_fd = drm_reopen_driver(gem_fd);
>  		ctx = intel_ctx_create_all_physical(spin_fd);
>  	} else {
>  		spin_fd = gem_fd;
> diff --git a/tests/i915/gem_barrier_race.c b/tests/i915/gem_barrier_race.c
> index f446aab6..faeec361 100644
> --- a/tests/i915/gem_barrier_race.c
> +++ b/tests/i915/gem_barrier_race.c
> @@ -95,7 +95,7 @@ static void intel_context_first_pin_last_unpin_loop(int fd, uint64_t engine, int
>  	 */
>  	const uint32_t batch[2] = { 0, MI_BATCH_BUFFER_END };
>  
> -	fd = gem_reopen_driver(fd);
> +	fd = drm_reopen_driver(fd);
>  
>  	do {
>  		uint32_t handle = gem_create(fd, 4096);
> diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c
> index 9c646f42..dc88eca4 100644
> --- a/tests/i915/gem_close_race.c
> +++ b/tests/i915/gem_close_race.c
> @@ -170,7 +170,7 @@ static void process(int fd, int child)
>  {
>  	uint32_t handle;
>  
> -	fd = gem_reopen_driver(fd);
> +	fd = drm_reopen_driver(fd);
>  
>  	handle = load(fd);
>  	if ((child & 63) == 63)
> @@ -220,7 +220,7 @@ static void thread(int fd, struct drm_gem_open name,
>  
>  		memset(history, 0, sizeof(*history) * N_HISTORY);
>  
> -		crashme.fd = gem_reopen_driver(fd);
> +		crashme.fd = drm_reopen_driver(fd);
>  
>  		memset(&its, 0, sizeof(its));
>  		its.it_value.tv_nsec = msec(1) + (rand() % msec(150));
> diff --git a/tests/i915/gem_concurrent_all.c b/tests/i915/gem_concurrent_all.c
> index 25b7daf8..fb3b5f5d 100644
> --- a/tests/i915/gem_concurrent_all.c
> +++ b/tests/i915/gem_concurrent_all.c
> @@ -1465,7 +1465,7 @@ static void __run_forked(struct buffers *buffers,
>  		int num_buffers;
>  
>  		/* recreate process local variables */
> -		fd = gem_reopen_driver(fd);
> +		fd = drm_reopen_driver(fd);
>  
>  		intel_allocator_init(); /* detach from thread */
>  		num_buffers = buffers->num_buffers / num_children;
> diff --git a/tests/i915/gem_ctx_create.c b/tests/i915/gem_ctx_create.c
> index 39f070af..a59abd08 100644
> --- a/tests/i915/gem_ctx_create.c
> +++ b/tests/i915/gem_ctx_create.c
> @@ -106,7 +106,7 @@ static void files(int core, const intel_ctx_cfg_t *cfg,
>  
>  		clock_gettime(CLOCK_MONOTONIC, &start);
>  		do {
> -			fd = gem_reopen_driver(core);
> +			fd = drm_reopen_driver(core);
>  
>  			ctx = intel_ctx_create(fd, cfg);
>  			execbuf.rsvd1 = ctx->id;
> diff --git a/tests/i915/gem_ctx_exec.c b/tests/i915/gem_ctx_exec.c
> index 3d94f01d..20fa1159 100644
> --- a/tests/i915/gem_ctx_exec.c
> +++ b/tests/i915/gem_ctx_exec.c
> @@ -282,7 +282,7 @@ static void nohangcheck_hostile(int i915)
>  	 * we forcibly terminate that context.
>  	 */
>  
> -	i915 = gem_reopen_driver(i915);
> +	i915 = drm_reopen_driver(i915);
>  
>  	dir = igt_params_open(i915);
>  	igt_require(dir != -1);
> diff --git a/tests/i915/gem_ctx_param.c b/tests/i915/gem_ctx_param.c
> index d119ea74..2526b09c 100644
> --- a/tests/i915/gem_ctx_param.c
> +++ b/tests/i915/gem_ctx_param.c
> @@ -28,7 +28,6 @@
>  #include <limits.h>
>  
>  #include "igt.h"
> -#include "i915/gem.h"
>  #include "i915/gem_create.h"
>  #include "i915/gem_vm.h"
>  
> @@ -81,7 +80,7 @@ static void set_priority(int i915)
>  	igt_permute_array(values, size, igt_exchange_int64);
>  
>  	igt_fork(flags, NEW_CTX | USER) {
> -		int fd = gem_reopen_driver(i915);
> +		int fd = drm_reopen_driver(i915);
>  		struct drm_i915_gem_context_param arg = {
>  			.param = I915_CONTEXT_PARAM_PRIORITY,
>  			.ctx_id = flags & NEW_CTX ? gem_context_create(fd) : 0,
> diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
> index 9fb52818..c0197cea 100644
> --- a/tests/i915/gem_ctx_persistence.c
> +++ b/tests/i915/gem_ctx_persistence.c
> @@ -598,7 +598,7 @@ static void test_nonpersistent_file(int i915)
>  	 * has been made nonpersistent, in which case it must be terminated.
>  	 */
>  
> -	i915 = gem_reopen_driver(i915);
> +	i915 = drm_reopen_driver(i915);
>  
>  	ahnd = get_reloc_ahnd(i915, 0);
>  	gem_context_set_persistence(i915, 0, false);
> @@ -742,7 +742,7 @@ static void test_process(int i915)
>  		uint64_t ahnd;
>  
>  		intel_allocator_init();
> -		i915 = gem_reopen_driver(i915);
> +		i915 = drm_reopen_driver(i915);
>  		gem_quiescent_gpu(i915);
>  
>  		gem_context_set_persistence(i915, 0, false);
> @@ -790,7 +790,7 @@ static void test_userptr(int i915)
>  		uint64_t ahnd;
>  
>  		intel_allocator_init();
> -		i915 = gem_reopen_driver(i915);
> +		i915 = drm_reopen_driver(i915);
>  		gem_quiescent_gpu(i915);
>  
>  		gem_context_set_persistence(i915, 0, false);
> @@ -833,7 +833,7 @@ static void test_process_mixed(int pfd, const intel_ctx_cfg_t *cfg,
>  	igt_fork(child, 1) {
>  		int i915;
>  
> -		i915 = gem_reopen_driver(pfd);
> +		i915 = drm_reopen_driver(pfd);
>  		gem_quiescent_gpu(i915);
>  
>  		for (int persists = 0; persists <= 1; persists++) {
> @@ -1000,7 +1000,7 @@ static void test_processes(int i915)
>  			uint64_t ahnd;
>  
>  			intel_allocator_init();
> -			i915 = gem_reopen_driver(i915);
> +			i915 = drm_reopen_driver(i915);
>  			gem_context_set_persistence(i915, 0, i);
>  
>  			ahnd = get_reloc_ahnd(i915, 0);
> @@ -1069,7 +1069,7 @@ static void __smoker(int i915, const intel_ctx_cfg_t *cfg,
>  	const intel_ctx_t *ctx;
>  	uint64_t ahnd;
>  
> -	fd = gem_reopen_driver(i915);
> +	fd = drm_reopen_driver(i915);
>  	ctx = ctx_create_persistence(fd, cfg, expected > 0);
>  	ahnd = get_reloc_ahnd(fd, ctx->id);
>  	spin = igt_spin_new(fd, .ahnd = ahnd, .ctx = ctx, .engine = engine,
> diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
> index 3d73db58..8629992e 100644
> --- a/tests/i915/gem_ctx_shared.c
> +++ b/tests/i915/gem_ctx_shared.c
> @@ -206,7 +206,7 @@ static void exhaust_shared_gtt(int i915, unsigned int flags)
>  		},
>  	};
>  
> -	i915 = gem_reopen_driver(i915);
> +	i915 = drm_reopen_driver(i915);
>  
>  	vm_create_ext.param.value = gem_vm_create(i915);
>  
> diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
> index 8dbaa7a7..81e55e16 100644
> --- a/tests/i915/gem_eio.c
> +++ b/tests/i915/gem_eio.c
> @@ -450,7 +450,7 @@ static void set_heartbeat(int i915, int interval)
>  
>  static int reopen_device(int i915)
>  {
> -	i915 = gem_reopen_driver(i915);
> +	i915 = drm_reopen_driver(i915);
>  	igt_require_gem(i915);
>  	set_heartbeat(i915, 250); /* require gem restores defaults */
>  
> diff --git a/tests/i915/gem_exec_alignment.c b/tests/i915/gem_exec_alignment.c
> index a9fcd2a7..5059572f 100644
> --- a/tests/i915/gem_exec_alignment.c
> +++ b/tests/i915/gem_exec_alignment.c
> @@ -158,7 +158,7 @@ naughty_child(int i915, int link, uint32_t shared, unsigned int flags)
>  	uint64_t elapsed;
>  
>  	if (flags & ISOLATED)
> -		i915 = gem_reopen_driver(i915);
> +		i915 = drm_reopen_driver(i915);
>  
>  	if (!(flags & SHARED))
>  		shared = 0;
> @@ -449,7 +449,7 @@ static void forked(int i915, int timeout)
>  	struct drm_i915_gem_exec_object2 *obj;
>  	unsigned long count;
>  
> -	i915 = gem_reopen_driver(i915);
> +	i915 = drm_reopen_driver(i915);
>  	igt_require(gem_uses_full_ppgtt(i915));
>  
>  	obj = setup_many(i915, &count);
> @@ -457,7 +457,7 @@ static void forked(int i915, int timeout)
>  		obj[i].handle = gem_flink(i915, obj[i].handle);
>  
>  	igt_fork(child, sysconf(_SC_NPROCESSORS_ONLN)) {
> -		i915 = gem_reopen_driver(i915);
> +		i915 = drm_reopen_driver(i915);
>  		for (unsigned long i = 0; i < count; i++)
>  			obj[i].handle = gem_open(i915, obj[i].handle);
>  		__many(i915, timeout, obj, count);
> diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
> index 9c391192..5d3e0905 100644
> --- a/tests/i915/gem_exec_capture.c
> +++ b/tests/i915/gem_exec_capture.c
> @@ -714,7 +714,7 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
>  	igt_fork(child, 1) {
>  		const intel_ctx_t *ctx2;
>  		int fence_out;
> -		fd = gem_reopen_driver(fd);
> +		fd = drm_reopen_driver(fd);
>  		igt_debug("Submitting large capture [%ld x %dMiB objects]\n",
>  			  count, (int)(size >> 20));
>  
> diff --git a/tests/i915/gem_exec_fair.c b/tests/i915/gem_exec_fair.c
> index 8208ab40..67af4739 100644
> --- a/tests/i915/gem_exec_fair.c
> +++ b/tests/i915/gem_exec_fair.c
> @@ -728,7 +728,7 @@ static void fairness(int i915, const intel_ctx_cfg_t *cfg,
>  				if (common)
>  					dmabuf = prime_handle_to_fd(i915, common);
>  
> -				i915 = gem_reopen_driver(i915);
> +				i915 = drm_reopen_driver(i915);
>  
>  				if (dmabuf != -1)
>  					common = prime_fd_to_handle(i915, dmabuf);
> diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
> index c2d874f8..70f86da5 100644
> --- a/tests/i915/gem_exec_fence.c
> +++ b/tests/i915/gem_exec_fence.c
> @@ -1655,7 +1655,7 @@ static void test_invalid_timeline_fence_array(int fd)
>  	uint64_t value;
>  	void *ptr;
>  
> -	fd = gem_reopen_driver(fd);
> +	fd = drm_reopen_driver(fd);
>  
>  	/* create an otherwise valid execbuf */
>  	memset(&obj, 0, sizeof(obj));
> diff --git a/tests/i915/gem_exec_nop.c b/tests/i915/gem_exec_nop.c
> index 497f57f0..f1ec23e8 100644
> --- a/tests/i915/gem_exec_nop.c
> +++ b/tests/i915/gem_exec_nop.c
> @@ -608,7 +608,7 @@ static void multiple(int fd, const intel_ctx_t *ctx,
>  		int i915;
>  		const intel_ctx_t *child_ctx;
>  
> -		i915 = gem_reopen_driver(fd);
> +		i915 = drm_reopen_driver(fd);
>  		child_ctx = intel_ctx_create(i915, &ctx->cfg);
>  		execbuf.rsvd1 = child_ctx->id;
>  
> diff --git a/tests/i915/gem_exec_parallel.c b/tests/i915/gem_exec_parallel.c
> index 705b22cb..97257ea4 100644
> --- a/tests/i915/gem_exec_parallel.c
> +++ b/tests/i915/gem_exec_parallel.c
> @@ -86,7 +86,7 @@ static void *thread(void *data)
>  	pthread_mutex_unlock(t->mutex);
>  
>  	if (t->flags & FDS) {
> -		fd = gem_reopen_driver(t->fd);
> +		fd = drm_reopen_driver(t->fd);
>  	} else {
>  		fd = t->fd;
>  	}
> diff --git a/tests/i915/gem_exec_whisper.c b/tests/i915/gem_exec_whisper.c
> index 29d96cdc..80e4b391 100644
> --- a/tests/i915/gem_exec_whisper.c
> +++ b/tests/i915/gem_exec_whisper.c
> @@ -98,7 +98,7 @@ static void init_hang(struct hang *h, int fd, const intel_ctx_cfg_t *cfg)
>  	uint32_t *batch;
>  	int i, gen;
>  
> -	h->fd = gem_reopen_driver(fd);
> +	h->fd = drm_reopen_driver(fd);
>  	igt_allow_hang(h->fd, 0, 0);
>  
>  	gen = intel_gen(intel_get_drm_devid(h->fd));
> @@ -329,7 +329,7 @@ static void whisper(int fd, const intel_ctx_t *ctx,
>  
>  		if (flags & FDS) {
>  			for (n = 0; n < 64; n++) {
> -				fds[n] = gem_reopen_driver(fd);
> +				fds[n] = drm_reopen_driver(fd);
>  			}
>  		}
>  		if (flags & (CONTEXTS | QUEUES | FDS)) {
> diff --git a/tests/i915/gem_lmem_evict.c b/tests/i915/gem_lmem_evict.c
> index 71a066de..d2611bd5 100644
> --- a/tests/i915/gem_lmem_evict.c
> +++ b/tests/i915/gem_lmem_evict.c
> @@ -57,7 +57,7 @@ static void test_dontneed_evict_race(int fd,
>  	igt_fork(child, 1) {
>  		uint32_t handle2;
>  
> -		fd = gem_reopen_driver(fd);
> +		fd = drm_reopen_driver(fd);
>  
>  		handle2 = gem_create_in_memory_region_list(fd,
>  							   size, 0,
> diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c
> index 55b044ec..4177286b 100644
> --- a/tests/i915/gem_lmem_swapping.c
> +++ b/tests/i915/gem_lmem_swapping.c
> @@ -539,7 +539,7 @@ static void test_evict(int i915,
>  	fill_params(i915, &params, region, flags, nproc, false);
>  
>  	if (flags & TEST_PARALLEL) {
> -		int fd = gem_reopen_driver(i915);
> +		int fd = drm_reopen_driver(i915);
>  
>  		intel_allocator_multiprocess_start();
>  		ctx = intel_ctx_create_all_physical(fd);
> @@ -610,7 +610,7 @@ static void test_smem_oom(int i915,
>  
>  	/* process for testing lmem eviction */
>  	igt_fork(child, 1) {
> -		int fd = gem_reopen_driver(i915);
> +		int fd = drm_reopen_driver(i915);
>  		struct params params;
>  
>  		fill_params(i915, &params, region, 0, 1, true);
> @@ -637,7 +637,7 @@ static void test_smem_oom(int i915,
>  				}
>  			}
>  			igt_fork(child, 1) {
> -				int fd = gem_reopen_driver(i915);
> +				int fd = drm_reopen_driver(i915);
>  
>  				for (int pass = 0; pass < num_alloc; pass++) {
>  					if (READ_ONCE(*lmem_done))
> diff --git a/tests/i915/gem_mmap_gtt.c b/tests/i915/gem_mmap_gtt.c
> index c14ab50e..0b3a6e5b 100644
> --- a/tests/i915/gem_mmap_gtt.c
> +++ b/tests/i915/gem_mmap_gtt.c
> @@ -41,7 +41,6 @@
>  #include <sys/wait.h>
>  #include "drm.h"
>  
> -#include "i915/gem.h"
>  #include "i915/gem_create.h"
>  #include "igt.h"
>  #include "igt_sysfs.h"
> @@ -360,8 +359,8 @@ static void
>  test_isolation(int i915)
>  {
>  	struct drm_i915_gem_mmap_gtt mmap_arg;
> -	int A = gem_reopen_driver(i915);
> -	int B = gem_reopen_driver(i915);
> +	int A = drm_reopen_driver(i915);
> +	int B = drm_reopen_driver(i915);
>  	uint64_t offset_a, offset_b;
>  	uint32_t a, b;
>  	void *ptr;
> @@ -448,7 +447,7 @@ test_flink_race(int i915)
>  	igt_assert(handles != MAP_FAILED);
>  
>  	igt_fork(child, ncpus + 1) {
> -		int fd = gem_reopen_driver(i915);
> +		int fd = drm_reopen_driver(i915);
>  
>  		do {
>  			struct drm_i915_gem_mmap_gtt mmap_arg = {};
> diff --git a/tests/i915/gem_mmap_offset.c b/tests/i915/gem_mmap_offset.c
> index 962fc1b7..e7659e30 100644
> --- a/tests/i915/gem_mmap_offset.c
> +++ b/tests/i915/gem_mmap_offset.c
> @@ -33,7 +33,6 @@
>  #include <unistd.h>
>  #include "drm.h"
>  
> -#include "i915/gem.h"
>  #include "i915/gem_create.h"
>  #include "i915/intel_memory_region.h"
>  #include "igt.h"
> @@ -299,8 +298,8 @@ static void isolation(int i915)
>  			struct drm_i915_gem_mmap_offset mmap_arg = {
>  				.flags = t->type
>  			};
> -			int A = gem_reopen_driver(i915);
> -			int B = gem_reopen_driver(i915);
> +			int A = drm_reopen_driver(i915);
> +			int B = drm_reopen_driver(i915);
>  			uint64_t offset_a, offset_b;
>  			uint32_t a, b;
>  			void *ptr;
> @@ -622,7 +621,7 @@ static void open_flood(int i915, int timeout)
>  			continue;
>  
>  		igt_fork(child, 1) {
> -			i915 = gem_reopen_driver(i915);
> +			i915 = drm_reopen_driver(i915);
>  			arg.handle = prime_fd_to_handle(i915, dmabuf);
>  
>  			do {
> @@ -636,7 +635,7 @@ static void open_flood(int i915, int timeout)
>  	igt_until_timeout(timeout) {
>  		int tmp;
>  
> -		tmp = gem_reopen_driver(i915);
> +		tmp = drm_reopen_driver(i915);
>  		handle = prime_fd_to_handle(i915, dmabuf);
>  
>  		for_each_mmap_offset_type(i915, t) {
> diff --git a/tests/i915/gem_reset_stats.c b/tests/i915/gem_reset_stats.c
> index 7b003d88..ddc61781 100644
> --- a/tests/i915/gem_reset_stats.c
> +++ b/tests/i915/gem_reset_stats.c
> @@ -267,7 +267,7 @@ static void test_rs(const struct intel_execution_ring *e,
>  	igt_debug("num fds=%d, hang index=%d\n", num_fds, hang_index);
>  
>  	for (i = 0; i < num_fds; i++) {
> -		fd[i] = gem_reopen_driver(device);
> +		fd[i] = drm_reopen_driver(device);
>  		assert_reset_status(i, fd[i], 0, RS_NO_ERROR);
>  	}
>  
> @@ -318,7 +318,7 @@ static void test_rs_ctx(const struct intel_execution_ring *e,
>  	test_rs(e, num_fds, -1, RS_NO_ERROR);
>  
>  	for (i = 0; i < num_fds; i++) {
> -		fd[i] = gem_reopen_driver(device);
> +		fd[i] = drm_reopen_driver(device);
>  		igt_assert(fd[i]);
>  		assert_reset_status(i, fd[i], 0, RS_NO_ERROR);
>  
> @@ -384,8 +384,8 @@ static void test_ban(const struct intel_execution_ring *e)
>  	int ban, retry = 10;
>  	int active_count = 0;
>  
> -	fd_bad = gem_reopen_driver(device);
> -	fd_good = gem_reopen_driver(device);
> +	fd_bad = drm_reopen_driver(device);
> +	fd_good = drm_reopen_driver(device);
>  
>  	assert_reset_status(fd_bad, fd_bad, 0, RS_NO_ERROR);
>  	assert_reset_status(fd_good, fd_good, 0, RS_NO_ERROR);
> @@ -438,7 +438,7 @@ static void test_ban_ctx(const struct intel_execution_ring *e)
>  	uint32_t ctx_good, ctx_bad;
>  	int active_count = 0;
>  
> -	fd = gem_reopen_driver(device);
> +	fd = drm_reopen_driver(device);
>  
>  	assert_reset_status(fd, fd, 0, RS_NO_ERROR);
>  
> @@ -494,8 +494,8 @@ static void test_unrelated_ctx(const struct intel_execution_ring *e)
>  	int fd1,fd2;
>  	int ctx_guilty, ctx_unrelated;
>  
> -	fd1 = gem_reopen_driver(device);
> -	fd2 = gem_reopen_driver(device);
> +	fd1 = drm_reopen_driver(device);
> +	fd2 = drm_reopen_driver(device);
>  	assert_reset_status(0, fd1, 0, RS_NO_ERROR);
>  	assert_reset_status(1, fd2, 0, RS_NO_ERROR);
>  	ctx_guilty = gem_context_create(fd1);
> @@ -530,7 +530,7 @@ static int get_reset_count(int fd, int ctx)
>  
>  static void test_close_pending_ctx(const struct intel_execution_ring *e)
>  {
> -	int fd = gem_reopen_driver(device);
> +	int fd = drm_reopen_driver(device);
>  	uint32_t ctx = gem_context_create(fd);
>  
>  	assert_reset_status(fd, fd, ctx, RS_NO_ERROR);
> @@ -544,7 +544,7 @@ static void test_close_pending_ctx(const struct intel_execution_ring *e)
>  
>  static void test_close_pending(const struct intel_execution_ring *e)
>  {
> -	int fd = gem_reopen_driver(device);
> +	int fd = drm_reopen_driver(device);
>  
>  	assert_reset_status(fd, fd, 0, RS_NO_ERROR);
>  
> @@ -588,7 +588,7 @@ static void noop_on_each_ring(int fd, const bool reverse)
>  static void test_close_pending_fork(const struct intel_execution_ring *e,
>  				    const bool reverse)
>  {
> -	int fd = gem_reopen_driver(device);
> +	int fd = drm_reopen_driver(device);
>  	igt_hang_t hang;
>  	int pid;
>  
> @@ -603,7 +603,7 @@ static void test_close_pending_fork(const struct intel_execution_ring *e,
>  	 */
>  	pid = fork();
>  	if (pid == 0) {
> -		const int fd2 = gem_reopen_driver(device);
> +		const int fd2 = drm_reopen_driver(device);
>  		igt_assert_lte(0, fd2);
>  
>  		/* The crucial component is that we schedule the same noop batch
> @@ -630,7 +630,7 @@ static void test_close_pending_fork(const struct intel_execution_ring *e,
>  static void test_reset_count(const struct intel_execution_ring *e,
>  			     const bool create_ctx)
>  {
> -	int fd = gem_reopen_driver(device);
> +	int fd = drm_reopen_driver(device);
>  	int ctx;
>  	long c1, c2;
>  
> @@ -733,7 +733,7 @@ static void test_params_ctx(void)
>  {
>  	int fd;
>  
> -	fd = gem_reopen_driver(device);
> +	fd = drm_reopen_driver(device);
>  	_test_param(fd, gem_context_create(fd));
>  	close(fd);
>  }
> @@ -742,7 +742,7 @@ static void test_params(void)
>  {
>  	int fd;
>  
> -	fd = gem_reopen_driver(device);
> +	fd = drm_reopen_driver(device);
>  	_test_param(fd, 0);
>  	close(fd);
>  }
> @@ -767,7 +767,7 @@ static void defer_hangcheck(const struct intel_execution_ring *engine)
>  	int fd, count_start, count_end;
>  	int seconds = 30;
>  
> -	fd = gem_reopen_driver(device);
> +	fd = drm_reopen_driver(device);
>  
>  	next = next_engine(fd, engine);
>  	igt_skip_on(next == engine);
> diff --git a/tests/i915/gem_ringfill.c b/tests/i915/gem_ringfill.c
> index afcd7b73..de6e26bf 100644
> --- a/tests/i915/gem_ringfill.c
> +++ b/tests/i915/gem_ringfill.c
> @@ -219,7 +219,7 @@ static void run_test(int fd, const intel_ctx_t *ctx, unsigned ring,
>  		igt_fork(child, nchild) {
>  			const intel_ctx_t *child_ctx = NULL;
>  			if (flags & NEWFD) {
> -				fd = gem_reopen_driver(fd);
> +				fd = drm_reopen_driver(fd);
>  				child_ctx = intel_ctx_create(fd, &ctx->cfg);
>  
>  				setup_execbuf(fd, child_ctx, &execbuf, obj, reloc, ring);
> diff --git a/tests/i915/gem_softpin.c b/tests/i915/gem_softpin.c
> index 8717860b..933daa4a 100644
> --- a/tests/i915/gem_softpin.c
> +++ b/tests/i915/gem_softpin.c
> @@ -1160,7 +1160,7 @@ static void *thread(void *data)
>  	uint32_t batch = MI_BATCH_BUFFER_END;
>  	int fd, ret, succeeded = 0;
>  
> -	fd = gem_reopen_driver(t->fd);
> +	fd = drm_reopen_driver(t->fd);
>  	ctx = intel_ctx_create(fd, &t->ctx->cfg);
>  	offset_obj = gem_detect_safe_start_offset(fd);
>  	offset_bb = ALIGN(offset_obj + 4096, gem_detect_safe_alignment(fd));
> diff --git a/tests/i915/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c
> index b00afc32..baba7cf3 100644
> --- a/tests/i915/gem_userptr_blits.c
> +++ b/tests/i915/gem_userptr_blits.c
> @@ -669,7 +669,7 @@ static void test_nohangcheck_hostile(int i915)
>  	 * Even if the user disables hangcheck, we must still recover.
>  	 */
>  
> -	i915 = gem_reopen_driver(i915);
> +	i915 = drm_reopen_driver(i915);
>  	gem_require_contexts(i915);
>  
>  	dir = igt_params_open(i915);
> diff --git a/tests/i915/gem_vm_create.c b/tests/i915/gem_vm_create.c
> index f47d8c55..44958cce 100644
> --- a/tests/i915/gem_vm_create.c
> +++ b/tests/i915/gem_vm_create.c
> @@ -306,7 +306,7 @@ static void isolation(int i915)
>  	struct drm_i915_gem_context_param arg = {
>  		.param = I915_CONTEXT_PARAM_VM,
>  	};
> -	int other = gem_reopen_driver(i915);
> +	int other = drm_reopen_driver(i915);
>  	uint32_t ctx[2], vm[2], result;
>  	int loops = 4096;
>  
> diff --git a/tests/i915/gem_watchdog.c b/tests/i915/gem_watchdog.c
> index 27f3a2d7..47ccd2ca 100644
> --- a/tests/i915/gem_watchdog.c
> +++ b/tests/i915/gem_watchdog.c
> @@ -564,7 +564,7 @@ igt_main
>  					timeout * 1000);
>  		default_timeout_wait_s = timeout * 5;
>  
> -		i915 = gem_reopen_driver(i915); /* Apply modparam. */
> +		i915 = drm_reopen_driver(i915); /* Apply modparam. */
>  		ctx = intel_ctx_create_all_physical(i915);
>  	}
>  
> diff --git a/tests/i915/gem_workarounds.c b/tests/i915/gem_workarounds.c
> index 7d119962..ae544adb 100644
> --- a/tests/i915/gem_workarounds.c
> +++ b/tests/i915/gem_workarounds.c
> @@ -198,7 +198,7 @@ static void check_workarounds(int fd, enum operation op, unsigned int flags)
>  	const intel_ctx_t *ctx;
>  
>  	if (flags & FD)
> -		fd = gem_reopen_driver(fd);
> +		fd = drm_reopen_driver(fd);
>  
>  	ctx = intel_ctx_0(fd);
>  	if (flags & CONTEXT) {
> diff --git a/tests/i915/i915_suspend.c b/tests/i915/i915_suspend.c
> index a9507964..5b289ecb 100644
> --- a/tests/i915/i915_suspend.c
> +++ b/tests/i915/i915_suspend.c
> @@ -178,7 +178,7 @@ test_shrink(int fd, unsigned int mode)
>  	gem_quiescent_gpu(fd);
>  
>  	igt_multi_fork(child, 1) {
> -		fd = gem_reopen_driver(fd);
> +		fd = drm_reopen_driver(fd);
>  		igt_purge_vm_caches(fd);
>  
>  		mem = igt_get_total_pinnable_mem(&size);
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index 9ca4d34b..cd73b1a9 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -4513,7 +4513,7 @@ gen12_test_single_ctx_render_target_writes_a_counter(const struct intel_executio
>  	do {
>  		igt_fork_helper(&child) {
>  			/* A local device for local resources. */
> -			drm_fd = gem_reopen_driver(drm_fd);
> +			drm_fd = drm_reopen_driver(drm_fd);
>  
>  			igt_drop_root();
>  			gen12_single_ctx_helper(e);
> -- 
> 2.25.1
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [igt-dev] [PATCH i-g-t v2] lib/drmtest: Add function drm_reopen_driver()
  2023-05-10 11:50 ` [igt-dev] [PATCH i-g-t v2] " Kamil Konieczny
@ 2023-05-11  5:50   ` Zbigniew Kempczyński
  0 siblings, 0 replies; 4+ messages in thread
From: Zbigniew Kempczyński @ 2023-05-11  5:50 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, Anna Karas, Zbigniew Kempczynski

On Wed, May 10, 2023 at 01:50:13PM +0200, Kamil Konieczny wrote:
> Hi,
> 
> On 2023-05-10 at 10:44:51 +0200, Anna Karas wrote:
> > We need an equivalent of gem_reopen_driver() in XE. In order to not
> > duplicate the code, move gem_reopen_driver() one directory up from
> > lib/i915 to lib as drm_reopen_driver() so XE can use it too.
> > 
> > Rename gem_reopen_driver() across files.
> > 
> > v2: cache xe_device after opening the driver
> > 
> > Reference: VLK-46235
> > Signed-off-by: Anna Karas <anna.karas@intel.com>
> > Acked-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> > ---
> >  lib/drmtest.c                    | 22 ++++++++++++++++++++++
> >  lib/drmtest.h                    |  2 ++
> >  lib/i915/gem.c                   | 20 +-------------------
> >  lib/i915/gem.h                   |  2 --
> >  lib/i915/gem_ring.c              |  2 +-
> >  lib/i915/gem_submission.c        |  4 ++--
> >  tests/i915/api_intel_allocator.c |  6 +++---
> >  tests/i915/drm_fdinfo.c          |  2 +-
> >  tests/i915/gem_barrier_race.c    |  2 +-
> >  tests/i915/gem_close_race.c      |  4 ++--
> >  tests/i915/gem_concurrent_all.c  |  2 +-
> >  tests/i915/gem_ctx_create.c      |  2 +-
> >  tests/i915/gem_ctx_exec.c        |  2 +-
> >  tests/i915/gem_ctx_param.c       |  3 +--
> >  tests/i915/gem_ctx_persistence.c | 12 ++++++------
> >  tests/i915/gem_ctx_shared.c      |  2 +-
> >  tests/i915/gem_eio.c             |  2 +-
> >  tests/i915/gem_exec_alignment.c  |  6 +++---
> >  tests/i915/gem_exec_capture.c    |  2 +-
> >  tests/i915/gem_exec_fair.c       |  2 +-
> >  tests/i915/gem_exec_fence.c      |  2 +-
> >  tests/i915/gem_exec_nop.c        |  2 +-
> >  tests/i915/gem_exec_parallel.c   |  2 +-
> >  tests/i915/gem_exec_whisper.c    |  4 ++--
> >  tests/i915/gem_lmem_evict.c      |  2 +-
> >  tests/i915/gem_lmem_swapping.c   |  6 +++---
> >  tests/i915/gem_mmap_gtt.c        |  7 +++----
> >  tests/i915/gem_mmap_offset.c     |  9 ++++-----
> >  tests/i915/gem_reset_stats.c     | 30 +++++++++++++++---------------
> >  tests/i915/gem_ringfill.c        |  2 +-
> >  tests/i915/gem_softpin.c         |  2 +-
> >  tests/i915/gem_userptr_blits.c   |  2 +-
> >  tests/i915/gem_vm_create.c       |  2 +-
> >  tests/i915/gem_watchdog.c        |  2 +-
> >  tests/i915/gem_workarounds.c     |  2 +-
> >  tests/i915/i915_suspend.c        |  2 +-
> >  tests/i915/perf.c                |  2 +-
> >  37 files changed, 91 insertions(+), 90 deletions(-)
> > 
> > diff --git a/lib/drmtest.c b/lib/drmtest.c
> > index c91a9142..fb058441 100644
> > --- a/lib/drmtest.c
> > +++ b/lib/drmtest.c
> > @@ -49,6 +49,7 @@
> >  #include "drmtest.h"
> >  #include "i915_drm.h"
> >  #include "i915/gem.h"
> > +#include "xe/xe_query.h"
> >  #include "intel_chipset.h"
> >  #include "intel_io.h"
> >  #include "igt_debugfs.h"
> > @@ -652,6 +653,27 @@ int drm_open_driver_render(int chipset)
> >  	return fd;
> >  }
> >  
> > +/**
> > + * drm_reopen_driver:
> > + * @fd: re-open the drm file descriptor
> > + *
> > + * Re-opens the drm fd which is useful in instances where a clean default
> > + * context is needed.
> > + */
> > +int drm_reopen_driver(int fd)
> > +{
> > +	char path[256];
> > +
> > +	snprintf(path, sizeof(path), "/proc/self/fd/%d", fd);
> > +	fd = open(path, O_RDWR);
> > +	igt_assert_fd(fd);
> > +
> > +        if (is_xe_device(fd))
> > +                xe_device_get(fd);

This identation looks incorrect.

--
Zbigniew

> > +
> > +	return fd;
> > +}
> > +
> 
> LGTM,
> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> 
> >  void igt_require_amdgpu(int fd)
> >  {
> >  	igt_require(is_amdgpu_device(fd));
> > diff --git a/lib/drmtest.h b/lib/drmtest.h
> > index 3c88b85c..ae86ee19 100644
> > --- a/lib/drmtest.h
> > +++ b/lib/drmtest.h
> > @@ -106,6 +106,8 @@ int __drm_open_driver_another(int idx, int chipset);
> >  int __drm_open_driver(int chipset);
> >  int __drm_open_driver_render(int chipset);
> >  
> > +int drm_reopen_driver(int fd);
> > +
> >  void igt_require_amdgpu(int fd);
> >  void igt_require_intel(int fd);
> >  void igt_require_i915(int fd);
> > diff --git a/lib/i915/gem.c b/lib/i915/gem.c
> > index ed45a9ed..6da3e5c9 100644
> > --- a/lib/i915/gem.c
> > +++ b/lib/i915/gem.c
> > @@ -147,7 +147,7 @@ void igt_require_gem(int i915)
> >  	 * of a wedged device, not for actually waiting on outstanding
> >  	 * requests! So create a new drm_file for the device that is clean.
> >  	 */
> > -	i915 = gem_reopen_driver(i915);
> > +	i915 = drm_reopen_driver(i915);
> >  
> >  	/*
> >  	 * Reset the global seqno at the start of each test. This ensures that
> > @@ -189,21 +189,3 @@ void gem_quiescent_gpu(int i915)
> >  	igt_drop_caches_set(i915,
> >  			    DROP_ACTIVE | DROP_RETIRE | DROP_IDLE | DROP_FREED);
> >  }
> > -
> > -/**
> > - * gem_reopen_driver:
> > - * @i915: re-open the i915 drm file descriptor
> > - *
> > - * Re-opens the drm fd which is useful in instances where a clean default
> > - * context is needed.
> > - */
> > -int gem_reopen_driver(int i915)
> > -{
> > -	char path[256];
> > -
> > -	snprintf(path, sizeof(path), "/proc/self/fd/%d", i915);
> > -	i915 = open(path, O_RDWR);
> > -	igt_assert_fd(i915);
> > -
> > -	return i915;
> > -}
> > diff --git a/lib/i915/gem.h b/lib/i915/gem.h
> > index feabac8d..06dcb546 100644
> > --- a/lib/i915/gem.h
> > +++ b/lib/i915/gem.h
> > @@ -30,6 +30,4 @@
> >  void igt_require_gem(int i915);
> >  void gem_quiescent_gpu(int i915);
> >  
> > -int gem_reopen_driver(int i915);
> > -
> >  #endif /* I915_GEM_H */
> > diff --git a/lib/i915/gem_ring.c b/lib/i915/gem_ring.c
> > index 6d28b5d9..eb2c7c2c 100644
> > --- a/lib/i915/gem_ring.c
> > +++ b/lib/i915/gem_ring.c
> > @@ -149,7 +149,7 @@ gem_measure_ring_inflight(int fd, unsigned int engine, enum measure_ring_flags f
> >  {
> >  	unsigned int min = ~0u;
> >  
> > -	fd = gem_reopen_driver(fd);
> > +	fd = drm_reopen_driver(fd);
> >  
> >  	/* When available, disable execbuf throttling */
> >  	fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | O_NONBLOCK);
> > diff --git a/lib/i915/gem_submission.c b/lib/i915/gem_submission.c
> > index 0358802e..adf5eb39 100644
> > --- a/lib/i915/gem_submission.c
> > +++ b/lib/i915/gem_submission.c
> > @@ -30,7 +30,6 @@
> >  
> >  #include <i915_drm.h>
> >  
> > -#include "i915/gem.h"
> >  #include "i915/gem_create.h"
> >  #include "i915/gem_engine_topology.h"
> >  #include "i915/gem_submission.h"
> > @@ -42,6 +41,7 @@
> >  #include "intel_chipset.h"
> >  #include "intel_reg.h"
> >  #include "ioctl_wrappers.h"
> > +#include "drmtest.h"
> >  
> >  /**
> >   * SECTION:gem_submission
> > @@ -158,7 +158,7 @@ void gem_test_all_engines(int i915)
> >  	};
> >  	const intel_ctx_t *ctx;
> >  
> > -	i915 = gem_reopen_driver(i915);
> > +	i915 = drm_reopen_driver(i915);
> >  	igt_assert(!is_wedged(i915));
> >  
> >  	ctx = intel_ctx_create_all_physical(i915);
> > diff --git a/tests/i915/api_intel_allocator.c b/tests/i915/api_intel_allocator.c
> > index e9039a21..1263e0fb 100644
> > --- a/tests/i915/api_intel_allocator.c
> > +++ b/tests/i915/api_intel_allocator.c
> > @@ -498,7 +498,7 @@ static void reopen(int fd)
> >  
> >  	igt_require_gem(fd);
> >  
> > -	fd2 = gem_reopen_driver(fd);
> > +	fd2 = drm_reopen_driver(fd);
> >  
> >  	__reopen_allocs(fd, fd2, true);
> >  
> > @@ -514,7 +514,7 @@ static void reopen_fork(int fd)
> >  
> >  	intel_allocator_multiprocess_start();
> >  
> > -	fd2 = gem_reopen_driver(fd);
> > +	fd2 = drm_reopen_driver(fd);
> >  
> >  	igt_fork(child, 2) {
> >  		igt_until_timeout(REOPEN_TIMEOUT)
> > @@ -681,7 +681,7 @@ static void fork_reopen_allocator(int fd, uint8_t type)
> >  		igt_assert(!intel_allocator_is_allocated(ctx_ahnd, 1, 123, offset));
> >  		intel_allocator_alloc(ctx_ahnd, 2, 123, 0);
> >  
> > -		fd = gem_reopen_driver(fd);
> > +		fd = drm_reopen_driver(fd);
> >  		fd_ahnd = intel_allocator_open(fd, 0, type);
> >  		igt_assert(!intel_allocator_is_allocated(fd_ahnd, 1, 123, offset));
> >  		intel_allocator_alloc(fd_ahnd, 2, 123, 0);
> > diff --git a/tests/i915/drm_fdinfo.c b/tests/i915/drm_fdinfo.c
> > index 1b124755..ac668c29 100644
> > --- a/tests/i915/drm_fdinfo.c
> > +++ b/tests/i915/drm_fdinfo.c
> > @@ -201,7 +201,7 @@ single(int gem_fd, const intel_ctx_t *ctx,
> >  		igt_require(!gem_using_guc_submission(gem_fd));
> >  
> >  	if (flags & TEST_ISOLATION) {
> > -		spin_fd = gem_reopen_driver(gem_fd);
> > +		spin_fd = drm_reopen_driver(gem_fd);
> >  		ctx = intel_ctx_create_all_physical(spin_fd);
> >  	} else {
> >  		spin_fd = gem_fd;
> > diff --git a/tests/i915/gem_barrier_race.c b/tests/i915/gem_barrier_race.c
> > index f446aab6..faeec361 100644
> > --- a/tests/i915/gem_barrier_race.c
> > +++ b/tests/i915/gem_barrier_race.c
> > @@ -95,7 +95,7 @@ static void intel_context_first_pin_last_unpin_loop(int fd, uint64_t engine, int
> >  	 */
> >  	const uint32_t batch[2] = { 0, MI_BATCH_BUFFER_END };
> >  
> > -	fd = gem_reopen_driver(fd);
> > +	fd = drm_reopen_driver(fd);
> >  
> >  	do {
> >  		uint32_t handle = gem_create(fd, 4096);
> > diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c
> > index 9c646f42..dc88eca4 100644
> > --- a/tests/i915/gem_close_race.c
> > +++ b/tests/i915/gem_close_race.c
> > @@ -170,7 +170,7 @@ static void process(int fd, int child)
> >  {
> >  	uint32_t handle;
> >  
> > -	fd = gem_reopen_driver(fd);
> > +	fd = drm_reopen_driver(fd);
> >  
> >  	handle = load(fd);
> >  	if ((child & 63) == 63)
> > @@ -220,7 +220,7 @@ static void thread(int fd, struct drm_gem_open name,
> >  
> >  		memset(history, 0, sizeof(*history) * N_HISTORY);
> >  
> > -		crashme.fd = gem_reopen_driver(fd);
> > +		crashme.fd = drm_reopen_driver(fd);
> >  
> >  		memset(&its, 0, sizeof(its));
> >  		its.it_value.tv_nsec = msec(1) + (rand() % msec(150));
> > diff --git a/tests/i915/gem_concurrent_all.c b/tests/i915/gem_concurrent_all.c
> > index 25b7daf8..fb3b5f5d 100644
> > --- a/tests/i915/gem_concurrent_all.c
> > +++ b/tests/i915/gem_concurrent_all.c
> > @@ -1465,7 +1465,7 @@ static void __run_forked(struct buffers *buffers,
> >  		int num_buffers;
> >  
> >  		/* recreate process local variables */
> > -		fd = gem_reopen_driver(fd);
> > +		fd = drm_reopen_driver(fd);
> >  
> >  		intel_allocator_init(); /* detach from thread */
> >  		num_buffers = buffers->num_buffers / num_children;
> > diff --git a/tests/i915/gem_ctx_create.c b/tests/i915/gem_ctx_create.c
> > index 39f070af..a59abd08 100644
> > --- a/tests/i915/gem_ctx_create.c
> > +++ b/tests/i915/gem_ctx_create.c
> > @@ -106,7 +106,7 @@ static void files(int core, const intel_ctx_cfg_t *cfg,
> >  
> >  		clock_gettime(CLOCK_MONOTONIC, &start);
> >  		do {
> > -			fd = gem_reopen_driver(core);
> > +			fd = drm_reopen_driver(core);
> >  
> >  			ctx = intel_ctx_create(fd, cfg);
> >  			execbuf.rsvd1 = ctx->id;
> > diff --git a/tests/i915/gem_ctx_exec.c b/tests/i915/gem_ctx_exec.c
> > index 3d94f01d..20fa1159 100644
> > --- a/tests/i915/gem_ctx_exec.c
> > +++ b/tests/i915/gem_ctx_exec.c
> > @@ -282,7 +282,7 @@ static void nohangcheck_hostile(int i915)
> >  	 * we forcibly terminate that context.
> >  	 */
> >  
> > -	i915 = gem_reopen_driver(i915);
> > +	i915 = drm_reopen_driver(i915);
> >  
> >  	dir = igt_params_open(i915);
> >  	igt_require(dir != -1);
> > diff --git a/tests/i915/gem_ctx_param.c b/tests/i915/gem_ctx_param.c
> > index d119ea74..2526b09c 100644
> > --- a/tests/i915/gem_ctx_param.c
> > +++ b/tests/i915/gem_ctx_param.c
> > @@ -28,7 +28,6 @@
> >  #include <limits.h>
> >  
> >  #include "igt.h"
> > -#include "i915/gem.h"
> >  #include "i915/gem_create.h"
> >  #include "i915/gem_vm.h"
> >  
> > @@ -81,7 +80,7 @@ static void set_priority(int i915)
> >  	igt_permute_array(values, size, igt_exchange_int64);
> >  
> >  	igt_fork(flags, NEW_CTX | USER) {
> > -		int fd = gem_reopen_driver(i915);
> > +		int fd = drm_reopen_driver(i915);
> >  		struct drm_i915_gem_context_param arg = {
> >  			.param = I915_CONTEXT_PARAM_PRIORITY,
> >  			.ctx_id = flags & NEW_CTX ? gem_context_create(fd) : 0,
> > diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
> > index 9fb52818..c0197cea 100644
> > --- a/tests/i915/gem_ctx_persistence.c
> > +++ b/tests/i915/gem_ctx_persistence.c
> > @@ -598,7 +598,7 @@ static void test_nonpersistent_file(int i915)
> >  	 * has been made nonpersistent, in which case it must be terminated.
> >  	 */
> >  
> > -	i915 = gem_reopen_driver(i915);
> > +	i915 = drm_reopen_driver(i915);
> >  
> >  	ahnd = get_reloc_ahnd(i915, 0);
> >  	gem_context_set_persistence(i915, 0, false);
> > @@ -742,7 +742,7 @@ static void test_process(int i915)
> >  		uint64_t ahnd;
> >  
> >  		intel_allocator_init();
> > -		i915 = gem_reopen_driver(i915);
> > +		i915 = drm_reopen_driver(i915);
> >  		gem_quiescent_gpu(i915);
> >  
> >  		gem_context_set_persistence(i915, 0, false);
> > @@ -790,7 +790,7 @@ static void test_userptr(int i915)
> >  		uint64_t ahnd;
> >  
> >  		intel_allocator_init();
> > -		i915 = gem_reopen_driver(i915);
> > +		i915 = drm_reopen_driver(i915);
> >  		gem_quiescent_gpu(i915);
> >  
> >  		gem_context_set_persistence(i915, 0, false);
> > @@ -833,7 +833,7 @@ static void test_process_mixed(int pfd, const intel_ctx_cfg_t *cfg,
> >  	igt_fork(child, 1) {
> >  		int i915;
> >  
> > -		i915 = gem_reopen_driver(pfd);
> > +		i915 = drm_reopen_driver(pfd);
> >  		gem_quiescent_gpu(i915);
> >  
> >  		for (int persists = 0; persists <= 1; persists++) {
> > @@ -1000,7 +1000,7 @@ static void test_processes(int i915)
> >  			uint64_t ahnd;
> >  
> >  			intel_allocator_init();
> > -			i915 = gem_reopen_driver(i915);
> > +			i915 = drm_reopen_driver(i915);
> >  			gem_context_set_persistence(i915, 0, i);
> >  
> >  			ahnd = get_reloc_ahnd(i915, 0);
> > @@ -1069,7 +1069,7 @@ static void __smoker(int i915, const intel_ctx_cfg_t *cfg,
> >  	const intel_ctx_t *ctx;
> >  	uint64_t ahnd;
> >  
> > -	fd = gem_reopen_driver(i915);
> > +	fd = drm_reopen_driver(i915);
> >  	ctx = ctx_create_persistence(fd, cfg, expected > 0);
> >  	ahnd = get_reloc_ahnd(fd, ctx->id);
> >  	spin = igt_spin_new(fd, .ahnd = ahnd, .ctx = ctx, .engine = engine,
> > diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
> > index 3d73db58..8629992e 100644
> > --- a/tests/i915/gem_ctx_shared.c
> > +++ b/tests/i915/gem_ctx_shared.c
> > @@ -206,7 +206,7 @@ static void exhaust_shared_gtt(int i915, unsigned int flags)
> >  		},
> >  	};
> >  
> > -	i915 = gem_reopen_driver(i915);
> > +	i915 = drm_reopen_driver(i915);
> >  
> >  	vm_create_ext.param.value = gem_vm_create(i915);
> >  
> > diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
> > index 8dbaa7a7..81e55e16 100644
> > --- a/tests/i915/gem_eio.c
> > +++ b/tests/i915/gem_eio.c
> > @@ -450,7 +450,7 @@ static void set_heartbeat(int i915, int interval)
> >  
> >  static int reopen_device(int i915)
> >  {
> > -	i915 = gem_reopen_driver(i915);
> > +	i915 = drm_reopen_driver(i915);
> >  	igt_require_gem(i915);
> >  	set_heartbeat(i915, 250); /* require gem restores defaults */
> >  
> > diff --git a/tests/i915/gem_exec_alignment.c b/tests/i915/gem_exec_alignment.c
> > index a9fcd2a7..5059572f 100644
> > --- a/tests/i915/gem_exec_alignment.c
> > +++ b/tests/i915/gem_exec_alignment.c
> > @@ -158,7 +158,7 @@ naughty_child(int i915, int link, uint32_t shared, unsigned int flags)
> >  	uint64_t elapsed;
> >  
> >  	if (flags & ISOLATED)
> > -		i915 = gem_reopen_driver(i915);
> > +		i915 = drm_reopen_driver(i915);
> >  
> >  	if (!(flags & SHARED))
> >  		shared = 0;
> > @@ -449,7 +449,7 @@ static void forked(int i915, int timeout)
> >  	struct drm_i915_gem_exec_object2 *obj;
> >  	unsigned long count;
> >  
> > -	i915 = gem_reopen_driver(i915);
> > +	i915 = drm_reopen_driver(i915);
> >  	igt_require(gem_uses_full_ppgtt(i915));
> >  
> >  	obj = setup_many(i915, &count);
> > @@ -457,7 +457,7 @@ static void forked(int i915, int timeout)
> >  		obj[i].handle = gem_flink(i915, obj[i].handle);
> >  
> >  	igt_fork(child, sysconf(_SC_NPROCESSORS_ONLN)) {
> > -		i915 = gem_reopen_driver(i915);
> > +		i915 = drm_reopen_driver(i915);
> >  		for (unsigned long i = 0; i < count; i++)
> >  			obj[i].handle = gem_open(i915, obj[i].handle);
> >  		__many(i915, timeout, obj, count);
> > diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
> > index 9c391192..5d3e0905 100644
> > --- a/tests/i915/gem_exec_capture.c
> > +++ b/tests/i915/gem_exec_capture.c
> > @@ -714,7 +714,7 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
> >  	igt_fork(child, 1) {
> >  		const intel_ctx_t *ctx2;
> >  		int fence_out;
> > -		fd = gem_reopen_driver(fd);
> > +		fd = drm_reopen_driver(fd);
> >  		igt_debug("Submitting large capture [%ld x %dMiB objects]\n",
> >  			  count, (int)(size >> 20));
> >  
> > diff --git a/tests/i915/gem_exec_fair.c b/tests/i915/gem_exec_fair.c
> > index 8208ab40..67af4739 100644
> > --- a/tests/i915/gem_exec_fair.c
> > +++ b/tests/i915/gem_exec_fair.c
> > @@ -728,7 +728,7 @@ static void fairness(int i915, const intel_ctx_cfg_t *cfg,
> >  				if (common)
> >  					dmabuf = prime_handle_to_fd(i915, common);
> >  
> > -				i915 = gem_reopen_driver(i915);
> > +				i915 = drm_reopen_driver(i915);
> >  
> >  				if (dmabuf != -1)
> >  					common = prime_fd_to_handle(i915, dmabuf);
> > diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
> > index c2d874f8..70f86da5 100644
> > --- a/tests/i915/gem_exec_fence.c
> > +++ b/tests/i915/gem_exec_fence.c
> > @@ -1655,7 +1655,7 @@ static void test_invalid_timeline_fence_array(int fd)
> >  	uint64_t value;
> >  	void *ptr;
> >  
> > -	fd = gem_reopen_driver(fd);
> > +	fd = drm_reopen_driver(fd);
> >  
> >  	/* create an otherwise valid execbuf */
> >  	memset(&obj, 0, sizeof(obj));
> > diff --git a/tests/i915/gem_exec_nop.c b/tests/i915/gem_exec_nop.c
> > index 497f57f0..f1ec23e8 100644
> > --- a/tests/i915/gem_exec_nop.c
> > +++ b/tests/i915/gem_exec_nop.c
> > @@ -608,7 +608,7 @@ static void multiple(int fd, const intel_ctx_t *ctx,
> >  		int i915;
> >  		const intel_ctx_t *child_ctx;
> >  
> > -		i915 = gem_reopen_driver(fd);
> > +		i915 = drm_reopen_driver(fd);
> >  		child_ctx = intel_ctx_create(i915, &ctx->cfg);
> >  		execbuf.rsvd1 = child_ctx->id;
> >  
> > diff --git a/tests/i915/gem_exec_parallel.c b/tests/i915/gem_exec_parallel.c
> > index 705b22cb..97257ea4 100644
> > --- a/tests/i915/gem_exec_parallel.c
> > +++ b/tests/i915/gem_exec_parallel.c
> > @@ -86,7 +86,7 @@ static void *thread(void *data)
> >  	pthread_mutex_unlock(t->mutex);
> >  
> >  	if (t->flags & FDS) {
> > -		fd = gem_reopen_driver(t->fd);
> > +		fd = drm_reopen_driver(t->fd);
> >  	} else {
> >  		fd = t->fd;
> >  	}
> > diff --git a/tests/i915/gem_exec_whisper.c b/tests/i915/gem_exec_whisper.c
> > index 29d96cdc..80e4b391 100644
> > --- a/tests/i915/gem_exec_whisper.c
> > +++ b/tests/i915/gem_exec_whisper.c
> > @@ -98,7 +98,7 @@ static void init_hang(struct hang *h, int fd, const intel_ctx_cfg_t *cfg)
> >  	uint32_t *batch;
> >  	int i, gen;
> >  
> > -	h->fd = gem_reopen_driver(fd);
> > +	h->fd = drm_reopen_driver(fd);
> >  	igt_allow_hang(h->fd, 0, 0);
> >  
> >  	gen = intel_gen(intel_get_drm_devid(h->fd));
> > @@ -329,7 +329,7 @@ static void whisper(int fd, const intel_ctx_t *ctx,
> >  
> >  		if (flags & FDS) {
> >  			for (n = 0; n < 64; n++) {
> > -				fds[n] = gem_reopen_driver(fd);
> > +				fds[n] = drm_reopen_driver(fd);
> >  			}
> >  		}
> >  		if (flags & (CONTEXTS | QUEUES | FDS)) {
> > diff --git a/tests/i915/gem_lmem_evict.c b/tests/i915/gem_lmem_evict.c
> > index 71a066de..d2611bd5 100644
> > --- a/tests/i915/gem_lmem_evict.c
> > +++ b/tests/i915/gem_lmem_evict.c
> > @@ -57,7 +57,7 @@ static void test_dontneed_evict_race(int fd,
> >  	igt_fork(child, 1) {
> >  		uint32_t handle2;
> >  
> > -		fd = gem_reopen_driver(fd);
> > +		fd = drm_reopen_driver(fd);
> >  
> >  		handle2 = gem_create_in_memory_region_list(fd,
> >  							   size, 0,
> > diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c
> > index 55b044ec..4177286b 100644
> > --- a/tests/i915/gem_lmem_swapping.c
> > +++ b/tests/i915/gem_lmem_swapping.c
> > @@ -539,7 +539,7 @@ static void test_evict(int i915,
> >  	fill_params(i915, &params, region, flags, nproc, false);
> >  
> >  	if (flags & TEST_PARALLEL) {
> > -		int fd = gem_reopen_driver(i915);
> > +		int fd = drm_reopen_driver(i915);
> >  
> >  		intel_allocator_multiprocess_start();
> >  		ctx = intel_ctx_create_all_physical(fd);
> > @@ -610,7 +610,7 @@ static void test_smem_oom(int i915,
> >  
> >  	/* process for testing lmem eviction */
> >  	igt_fork(child, 1) {
> > -		int fd = gem_reopen_driver(i915);
> > +		int fd = drm_reopen_driver(i915);
> >  		struct params params;
> >  
> >  		fill_params(i915, &params, region, 0, 1, true);
> > @@ -637,7 +637,7 @@ static void test_smem_oom(int i915,
> >  				}
> >  			}
> >  			igt_fork(child, 1) {
> > -				int fd = gem_reopen_driver(i915);
> > +				int fd = drm_reopen_driver(i915);
> >  
> >  				for (int pass = 0; pass < num_alloc; pass++) {
> >  					if (READ_ONCE(*lmem_done))
> > diff --git a/tests/i915/gem_mmap_gtt.c b/tests/i915/gem_mmap_gtt.c
> > index c14ab50e..0b3a6e5b 100644
> > --- a/tests/i915/gem_mmap_gtt.c
> > +++ b/tests/i915/gem_mmap_gtt.c
> > @@ -41,7 +41,6 @@
> >  #include <sys/wait.h>
> >  #include "drm.h"
> >  
> > -#include "i915/gem.h"
> >  #include "i915/gem_create.h"
> >  #include "igt.h"
> >  #include "igt_sysfs.h"
> > @@ -360,8 +359,8 @@ static void
> >  test_isolation(int i915)
> >  {
> >  	struct drm_i915_gem_mmap_gtt mmap_arg;
> > -	int A = gem_reopen_driver(i915);
> > -	int B = gem_reopen_driver(i915);
> > +	int A = drm_reopen_driver(i915);
> > +	int B = drm_reopen_driver(i915);
> >  	uint64_t offset_a, offset_b;
> >  	uint32_t a, b;
> >  	void *ptr;
> > @@ -448,7 +447,7 @@ test_flink_race(int i915)
> >  	igt_assert(handles != MAP_FAILED);
> >  
> >  	igt_fork(child, ncpus + 1) {
> > -		int fd = gem_reopen_driver(i915);
> > +		int fd = drm_reopen_driver(i915);
> >  
> >  		do {
> >  			struct drm_i915_gem_mmap_gtt mmap_arg = {};
> > diff --git a/tests/i915/gem_mmap_offset.c b/tests/i915/gem_mmap_offset.c
> > index 962fc1b7..e7659e30 100644
> > --- a/tests/i915/gem_mmap_offset.c
> > +++ b/tests/i915/gem_mmap_offset.c
> > @@ -33,7 +33,6 @@
> >  #include <unistd.h>
> >  #include "drm.h"
> >  
> > -#include "i915/gem.h"
> >  #include "i915/gem_create.h"
> >  #include "i915/intel_memory_region.h"
> >  #include "igt.h"
> > @@ -299,8 +298,8 @@ static void isolation(int i915)
> >  			struct drm_i915_gem_mmap_offset mmap_arg = {
> >  				.flags = t->type
> >  			};
> > -			int A = gem_reopen_driver(i915);
> > -			int B = gem_reopen_driver(i915);
> > +			int A = drm_reopen_driver(i915);
> > +			int B = drm_reopen_driver(i915);
> >  			uint64_t offset_a, offset_b;
> >  			uint32_t a, b;
> >  			void *ptr;
> > @@ -622,7 +621,7 @@ static void open_flood(int i915, int timeout)
> >  			continue;
> >  
> >  		igt_fork(child, 1) {
> > -			i915 = gem_reopen_driver(i915);
> > +			i915 = drm_reopen_driver(i915);
> >  			arg.handle = prime_fd_to_handle(i915, dmabuf);
> >  
> >  			do {
> > @@ -636,7 +635,7 @@ static void open_flood(int i915, int timeout)
> >  	igt_until_timeout(timeout) {
> >  		int tmp;
> >  
> > -		tmp = gem_reopen_driver(i915);
> > +		tmp = drm_reopen_driver(i915);
> >  		handle = prime_fd_to_handle(i915, dmabuf);
> >  
> >  		for_each_mmap_offset_type(i915, t) {
> > diff --git a/tests/i915/gem_reset_stats.c b/tests/i915/gem_reset_stats.c
> > index 7b003d88..ddc61781 100644
> > --- a/tests/i915/gem_reset_stats.c
> > +++ b/tests/i915/gem_reset_stats.c
> > @@ -267,7 +267,7 @@ static void test_rs(const struct intel_execution_ring *e,
> >  	igt_debug("num fds=%d, hang index=%d\n", num_fds, hang_index);
> >  
> >  	for (i = 0; i < num_fds; i++) {
> > -		fd[i] = gem_reopen_driver(device);
> > +		fd[i] = drm_reopen_driver(device);
> >  		assert_reset_status(i, fd[i], 0, RS_NO_ERROR);
> >  	}
> >  
> > @@ -318,7 +318,7 @@ static void test_rs_ctx(const struct intel_execution_ring *e,
> >  	test_rs(e, num_fds, -1, RS_NO_ERROR);
> >  
> >  	for (i = 0; i < num_fds; i++) {
> > -		fd[i] = gem_reopen_driver(device);
> > +		fd[i] = drm_reopen_driver(device);
> >  		igt_assert(fd[i]);
> >  		assert_reset_status(i, fd[i], 0, RS_NO_ERROR);
> >  
> > @@ -384,8 +384,8 @@ static void test_ban(const struct intel_execution_ring *e)
> >  	int ban, retry = 10;
> >  	int active_count = 0;
> >  
> > -	fd_bad = gem_reopen_driver(device);
> > -	fd_good = gem_reopen_driver(device);
> > +	fd_bad = drm_reopen_driver(device);
> > +	fd_good = drm_reopen_driver(device);
> >  
> >  	assert_reset_status(fd_bad, fd_bad, 0, RS_NO_ERROR);
> >  	assert_reset_status(fd_good, fd_good, 0, RS_NO_ERROR);
> > @@ -438,7 +438,7 @@ static void test_ban_ctx(const struct intel_execution_ring *e)
> >  	uint32_t ctx_good, ctx_bad;
> >  	int active_count = 0;
> >  
> > -	fd = gem_reopen_driver(device);
> > +	fd = drm_reopen_driver(device);
> >  
> >  	assert_reset_status(fd, fd, 0, RS_NO_ERROR);
> >  
> > @@ -494,8 +494,8 @@ static void test_unrelated_ctx(const struct intel_execution_ring *e)
> >  	int fd1,fd2;
> >  	int ctx_guilty, ctx_unrelated;
> >  
> > -	fd1 = gem_reopen_driver(device);
> > -	fd2 = gem_reopen_driver(device);
> > +	fd1 = drm_reopen_driver(device);
> > +	fd2 = drm_reopen_driver(device);
> >  	assert_reset_status(0, fd1, 0, RS_NO_ERROR);
> >  	assert_reset_status(1, fd2, 0, RS_NO_ERROR);
> >  	ctx_guilty = gem_context_create(fd1);
> > @@ -530,7 +530,7 @@ static int get_reset_count(int fd, int ctx)
> >  
> >  static void test_close_pending_ctx(const struct intel_execution_ring *e)
> >  {
> > -	int fd = gem_reopen_driver(device);
> > +	int fd = drm_reopen_driver(device);
> >  	uint32_t ctx = gem_context_create(fd);
> >  
> >  	assert_reset_status(fd, fd, ctx, RS_NO_ERROR);
> > @@ -544,7 +544,7 @@ static void test_close_pending_ctx(const struct intel_execution_ring *e)
> >  
> >  static void test_close_pending(const struct intel_execution_ring *e)
> >  {
> > -	int fd = gem_reopen_driver(device);
> > +	int fd = drm_reopen_driver(device);
> >  
> >  	assert_reset_status(fd, fd, 0, RS_NO_ERROR);
> >  
> > @@ -588,7 +588,7 @@ static void noop_on_each_ring(int fd, const bool reverse)
> >  static void test_close_pending_fork(const struct intel_execution_ring *e,
> >  				    const bool reverse)
> >  {
> > -	int fd = gem_reopen_driver(device);
> > +	int fd = drm_reopen_driver(device);
> >  	igt_hang_t hang;
> >  	int pid;
> >  
> > @@ -603,7 +603,7 @@ static void test_close_pending_fork(const struct intel_execution_ring *e,
> >  	 */
> >  	pid = fork();
> >  	if (pid == 0) {
> > -		const int fd2 = gem_reopen_driver(device);
> > +		const int fd2 = drm_reopen_driver(device);
> >  		igt_assert_lte(0, fd2);
> >  
> >  		/* The crucial component is that we schedule the same noop batch
> > @@ -630,7 +630,7 @@ static void test_close_pending_fork(const struct intel_execution_ring *e,
> >  static void test_reset_count(const struct intel_execution_ring *e,
> >  			     const bool create_ctx)
> >  {
> > -	int fd = gem_reopen_driver(device);
> > +	int fd = drm_reopen_driver(device);
> >  	int ctx;
> >  	long c1, c2;
> >  
> > @@ -733,7 +733,7 @@ static void test_params_ctx(void)
> >  {
> >  	int fd;
> >  
> > -	fd = gem_reopen_driver(device);
> > +	fd = drm_reopen_driver(device);
> >  	_test_param(fd, gem_context_create(fd));
> >  	close(fd);
> >  }
> > @@ -742,7 +742,7 @@ static void test_params(void)
> >  {
> >  	int fd;
> >  
> > -	fd = gem_reopen_driver(device);
> > +	fd = drm_reopen_driver(device);
> >  	_test_param(fd, 0);
> >  	close(fd);
> >  }
> > @@ -767,7 +767,7 @@ static void defer_hangcheck(const struct intel_execution_ring *engine)
> >  	int fd, count_start, count_end;
> >  	int seconds = 30;
> >  
> > -	fd = gem_reopen_driver(device);
> > +	fd = drm_reopen_driver(device);
> >  
> >  	next = next_engine(fd, engine);
> >  	igt_skip_on(next == engine);
> > diff --git a/tests/i915/gem_ringfill.c b/tests/i915/gem_ringfill.c
> > index afcd7b73..de6e26bf 100644
> > --- a/tests/i915/gem_ringfill.c
> > +++ b/tests/i915/gem_ringfill.c
> > @@ -219,7 +219,7 @@ static void run_test(int fd, const intel_ctx_t *ctx, unsigned ring,
> >  		igt_fork(child, nchild) {
> >  			const intel_ctx_t *child_ctx = NULL;
> >  			if (flags & NEWFD) {
> > -				fd = gem_reopen_driver(fd);
> > +				fd = drm_reopen_driver(fd);
> >  				child_ctx = intel_ctx_create(fd, &ctx->cfg);
> >  
> >  				setup_execbuf(fd, child_ctx, &execbuf, obj, reloc, ring);
> > diff --git a/tests/i915/gem_softpin.c b/tests/i915/gem_softpin.c
> > index 8717860b..933daa4a 100644
> > --- a/tests/i915/gem_softpin.c
> > +++ b/tests/i915/gem_softpin.c
> > @@ -1160,7 +1160,7 @@ static void *thread(void *data)
> >  	uint32_t batch = MI_BATCH_BUFFER_END;
> >  	int fd, ret, succeeded = 0;
> >  
> > -	fd = gem_reopen_driver(t->fd);
> > +	fd = drm_reopen_driver(t->fd);
> >  	ctx = intel_ctx_create(fd, &t->ctx->cfg);
> >  	offset_obj = gem_detect_safe_start_offset(fd);
> >  	offset_bb = ALIGN(offset_obj + 4096, gem_detect_safe_alignment(fd));
> > diff --git a/tests/i915/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c
> > index b00afc32..baba7cf3 100644
> > --- a/tests/i915/gem_userptr_blits.c
> > +++ b/tests/i915/gem_userptr_blits.c
> > @@ -669,7 +669,7 @@ static void test_nohangcheck_hostile(int i915)
> >  	 * Even if the user disables hangcheck, we must still recover.
> >  	 */
> >  
> > -	i915 = gem_reopen_driver(i915);
> > +	i915 = drm_reopen_driver(i915);
> >  	gem_require_contexts(i915);
> >  
> >  	dir = igt_params_open(i915);
> > diff --git a/tests/i915/gem_vm_create.c b/tests/i915/gem_vm_create.c
> > index f47d8c55..44958cce 100644
> > --- a/tests/i915/gem_vm_create.c
> > +++ b/tests/i915/gem_vm_create.c
> > @@ -306,7 +306,7 @@ static void isolation(int i915)
> >  	struct drm_i915_gem_context_param arg = {
> >  		.param = I915_CONTEXT_PARAM_VM,
> >  	};
> > -	int other = gem_reopen_driver(i915);
> > +	int other = drm_reopen_driver(i915);
> >  	uint32_t ctx[2], vm[2], result;
> >  	int loops = 4096;
> >  
> > diff --git a/tests/i915/gem_watchdog.c b/tests/i915/gem_watchdog.c
> > index 27f3a2d7..47ccd2ca 100644
> > --- a/tests/i915/gem_watchdog.c
> > +++ b/tests/i915/gem_watchdog.c
> > @@ -564,7 +564,7 @@ igt_main
> >  					timeout * 1000);
> >  		default_timeout_wait_s = timeout * 5;
> >  
> > -		i915 = gem_reopen_driver(i915); /* Apply modparam. */
> > +		i915 = drm_reopen_driver(i915); /* Apply modparam. */
> >  		ctx = intel_ctx_create_all_physical(i915);
> >  	}
> >  
> > diff --git a/tests/i915/gem_workarounds.c b/tests/i915/gem_workarounds.c
> > index 7d119962..ae544adb 100644
> > --- a/tests/i915/gem_workarounds.c
> > +++ b/tests/i915/gem_workarounds.c
> > @@ -198,7 +198,7 @@ static void check_workarounds(int fd, enum operation op, unsigned int flags)
> >  	const intel_ctx_t *ctx;
> >  
> >  	if (flags & FD)
> > -		fd = gem_reopen_driver(fd);
> > +		fd = drm_reopen_driver(fd);
> >  
> >  	ctx = intel_ctx_0(fd);
> >  	if (flags & CONTEXT) {
> > diff --git a/tests/i915/i915_suspend.c b/tests/i915/i915_suspend.c
> > index a9507964..5b289ecb 100644
> > --- a/tests/i915/i915_suspend.c
> > +++ b/tests/i915/i915_suspend.c
> > @@ -178,7 +178,7 @@ test_shrink(int fd, unsigned int mode)
> >  	gem_quiescent_gpu(fd);
> >  
> >  	igt_multi_fork(child, 1) {
> > -		fd = gem_reopen_driver(fd);
> > +		fd = drm_reopen_driver(fd);
> >  		igt_purge_vm_caches(fd);
> >  
> >  		mem = igt_get_total_pinnable_mem(&size);
> > diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> > index 9ca4d34b..cd73b1a9 100644
> > --- a/tests/i915/perf.c
> > +++ b/tests/i915/perf.c
> > @@ -4513,7 +4513,7 @@ gen12_test_single_ctx_render_target_writes_a_counter(const struct intel_executio
> >  	do {
> >  		igt_fork_helper(&child) {
> >  			/* A local device for local resources. */
> > -			drm_fd = gem_reopen_driver(drm_fd);
> > +			drm_fd = drm_reopen_driver(drm_fd);
> >  
> >  			igt_drop_root();
> >  			gen12_single_ctx_helper(e);
> > -- 
> > 2.25.1
> > 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-05-11  5:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-10  8:44 [igt-dev] [PATCH i-g-t v2] lib/drmtest: Add function drm_reopen_driver() Anna Karas
2023-05-10  9:45 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork
2023-05-10 11:50 ` [igt-dev] [PATCH i-g-t v2] " Kamil Konieczny
2023-05-11  5:50   ` Zbigniew Kempczyński

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox