[igt-dev] [PATCH i-g-t 1/3] tests/i915/gem_basic: fix multigpu subtest
Kamil Konieczny
kamil.konieczny at linux.intel.com
Tue Feb 14 19:28:28 UTC 2023
Function opening N-th driver card is designed to be called in
succession so refactor test to accommodate it. This was not
discovered until a recent test on a board with more than two
discrete GPU cards.
Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
---
tests/i915/gem_basic.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/tests/i915/gem_basic.c b/tests/i915/gem_basic.c
index 3dd790c6..66ff7fcc 100644
--- a/tests/i915/gem_basic.c
+++ b/tests/i915/gem_basic.c
@@ -37,6 +37,7 @@
#include "drm.h"
+#include "i915/gem.h"
#include "i915/gem_create.h"
#include "igt.h"
#include "igt_types.h"
@@ -101,17 +102,32 @@ igt_main
igt_describe("Verify basic functionality of gem_create and gem_close on multi-GPU.");
igt_subtest("multigpu-create-close") {
+#define MAX_GPU 16
+ int fds[MAX_GPU];
+
igt_require(gpu_count > 1);
+ igt_require(gpu_count <= MAX_GPU);
+ for (int i = 0; i < gpu_count; i++) {
+ int n_fd;
+
+ n_fd = i ? __drm_open_driver_another(i, DRIVER_INTEL) : gem_reopen_driver(fd);
+ igt_assert(n_fd >= 0);
+ fds[i] = n_fd;
+ }
+
igt_multi_fork(child, gpu_count) {
int gpu_fd;
- gpu_fd = __drm_open_driver_another(child, DRIVER_INTEL);
+ gpu_fd = gem_reopen_driver(fds[child]);
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();
+
+ for (int i = gpu_count - 1; i >= 0; i--)
+ close(fds[i]);
}
igt_describe("Verify that closing drm driver is possible with opened gem object.");
--
2.37.2
More information about the igt-dev
mailing list