[igt-dev] [PATCH i-g-t v2 5/7] tests/i915/gem_basic: add multigpu-create-close subtest

Kamil Konieczny kamil.konieczny at linux.intel.com
Tue Dec 6 11:20:31 UTC 2022


Add one subtest to run on more than one gpu simultanosly. For
this to work test should be run with --device option on machine
with two or more dgfx cards, for example with:

--device=pci:vendor=Intel,device=discrete,card=all

Test will skip if only one card is present.

v2: remove code for setting gpu_count=1 (Mauro)

Cc: Anna Karas <anna.karas at intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
Cc: Mauro Carvalho Chehab <mauro.chehab at linux.intel.com>
Cc: Petri Latvala <petri.latvala at intel.com>
Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab at kernel.org>
---
 tests/i915/gem_basic.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/tests/i915/gem_basic.c b/tests/i915/gem_basic.c
index 2aa5d850..3dd790c6 100644
--- a/tests/i915/gem_basic.c
+++ b/tests/i915/gem_basic.c
@@ -40,6 +40,7 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_types.h"
+#include "lib/igt_device_scan.h"
 
 IGT_TEST_DESCRIPTION("Tests basic gem_create and gem_close IOCTLs");
 
@@ -83,9 +84,12 @@ test_create_fd_close(int fd)
 igt_main
 {
 	igt_fd_t(fd);
+	int gpu_count;
 
-	igt_fixture
+	igt_fixture {
 		fd = drm_open_driver(DRIVER_INTEL);
+		gpu_count = igt_device_filter_count();
+	}
 
 	igt_describe("Verify that gem_close fails with bad params.");
 	igt_subtest("bad-close")
@@ -95,6 +99,21 @@ igt_main
 	igt_subtest("create-close")
 		test_create_close(fd);
 
+	igt_describe("Verify basic functionality of gem_create and gem_close on multi-GPU.");
+	igt_subtest("multigpu-create-close") {
+		igt_require(gpu_count > 1);
+		igt_multi_fork(child, gpu_count) {
+			int gpu_fd;
+
+			gpu_fd = __drm_open_driver_another(child, DRIVER_INTEL);
+			igt_assert_f(gpu_fd > 0, "cannot open gpu-%d, errno=%d\n", child, errno);
+			test_create_close(gpu_fd);
+			close(gpu_fd);
+		}
+
+		igt_waitchildren();
+	}
+
 	igt_describe("Verify that closing drm driver is possible with opened gem object.");
 	igt_subtest("create-fd-close")
 		test_create_fd_close(fd);
-- 
2.34.1



More information about the igt-dev mailing list