* [igt-dev] [PATCH i-g-t 2/7] lib/igt_core: store GPU string or opened device name [not found] <20221202205705.58879-1-kamil.konieczny@linux.intel.com> @ 2022-12-02 20:57 ` Kamil Konieczny 2022-12-07 10:32 ` Petri Latvala 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_core: add prefix to logging Kamil Konieczny ` (6 subsequent siblings) 7 siblings, 1 reply; 14+ messages in thread From: Kamil Konieczny @ 2022-12-02 20:57 UTC (permalink / raw) To: igt-dev From: Mauro Carvalho Chehab <mchehab@kernel.org> This is helpful on tests that run with multiple GPUs. The name will be automatically filled when a device will be opened. v2: reorganized code, changed commit message to note that it will be filled with pathname of opended device, also correct static initialization [Kamil] Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> --- lib/drmtest.c | 4 +++- lib/igt_core.c | 30 ++++++++++++++++++++++++++++++ lib/igt_core.h | 6 ++++++ 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/lib/drmtest.c b/lib/drmtest.c index 16e80bdf..5eb98272 100644 --- a/lib/drmtest.c +++ b/lib/drmtest.c @@ -222,8 +222,10 @@ static int open_device(const char *name, unsigned int chipset) break; } } - if ((chipset & chip) == chip) + if ((chipset & chip) == chip) { + set_gpu_string(name); return fd; + } err: close(fd); diff --git a/lib/igt_core.c b/lib/igt_core.c index dca380d0..68ae7289 100644 --- a/lib/igt_core.c +++ b/lib/igt_core.c @@ -1576,6 +1576,36 @@ static void kill_and_wait(pid_t *pids, int size, int signum) } } +static __thread char *gpu_string; + +void set_gpu_string(const char *fname) +{ + char sysfs[PATH_MAX], *path, *p; + + if (gpu_string) { + free(gpu_string); + gpu_string = NULL; + } + + if (!fname) + return; + + p = strrchr(fname, '/'); + if (!p) { + path = strdup(fname); + } else { + p++; + + strcpy(sysfs, "/sys/class/drm/"); + strcat(sysfs, p); + path = realpath(sysfs, NULL); + igt_debug("opened %s as %s\n", fname, path); + } + + gpu_string = path; + igt_assert(gpu_string); +} + __noreturn static void exit_subtest(const char *result) { struct timespec now; diff --git a/lib/igt_core.h b/lib/igt_core.h index 5d5593e0..1f7e3652 100644 --- a/lib/igt_core.h +++ b/lib/igt_core.h @@ -1519,4 +1519,10 @@ static inline void igt_pci_system_cleanup(void) { } +/** + * set_gpu_string(): + * Sets a string to describe the GPU being tested + */ +void set_gpu_string(const char *string); + #endif /* IGT_CORE_H */ -- 2.34.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/7] lib/igt_core: store GPU string or opened device name 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_core: store GPU string or opened device name Kamil Konieczny @ 2022-12-07 10:32 ` Petri Latvala 0 siblings, 0 replies; 14+ messages in thread From: Petri Latvala @ 2022-12-07 10:32 UTC (permalink / raw) To: Kamil Konieczny; +Cc: igt-dev On Fri, Dec 02, 2022 at 09:57:00PM +0100, Kamil Konieczny wrote: > From: Mauro Carvalho Chehab <mchehab@kernel.org> > > This is helpful on tests that run with multiple GPUs. > The name will be automatically filled when a device will > be opened. > > v2: reorganized code, changed commit message to note that > it will be filled with pathname of opended device, also > correct static initialization [Kamil] > > Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> > Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> > --- > lib/drmtest.c | 4 +++- > lib/igt_core.c | 30 ++++++++++++++++++++++++++++++ > lib/igt_core.h | 6 ++++++ > 3 files changed, 39 insertions(+), 1 deletion(-) > > diff --git a/lib/drmtest.c b/lib/drmtest.c > index 16e80bdf..5eb98272 100644 > --- a/lib/drmtest.c > +++ b/lib/drmtest.c > @@ -222,8 +222,10 @@ static int open_device(const char *name, unsigned int chipset) > break; > } > } > - if ((chipset & chip) == chip) > + if ((chipset & chip) == chip) { > + set_gpu_string(name); > return fd; > + } > > err: > close(fd); > diff --git a/lib/igt_core.c b/lib/igt_core.c > index dca380d0..68ae7289 100644 > --- a/lib/igt_core.c > +++ b/lib/igt_core.c > @@ -1576,6 +1576,36 @@ static void kill_and_wait(pid_t *pids, int size, int signum) > } > } > > +static __thread char *gpu_string; > + This is assuming that multiple gpu usage is done from different threads/processes per gpu. What about tests that call drm_open_driver_another() from the same thread? What about tests that don't call drm_open_driver() at all? -- Petri Latvala > +void set_gpu_string(const char *fname) > +{ > + char sysfs[PATH_MAX], *path, *p; > + > + if (gpu_string) { > + free(gpu_string); > + gpu_string = NULL; > + } > + > + if (!fname) > + return; > + > + p = strrchr(fname, '/'); > + if (!p) { > + path = strdup(fname); > + } else { > + p++; > + > + strcpy(sysfs, "/sys/class/drm/"); > + strcat(sysfs, p); > + path = realpath(sysfs, NULL); > + igt_debug("opened %s as %s\n", fname, path); > + } > + > + gpu_string = path; > + igt_assert(gpu_string); > +} > + > __noreturn static void exit_subtest(const char *result) > { > struct timespec now; > diff --git a/lib/igt_core.h b/lib/igt_core.h > index 5d5593e0..1f7e3652 100644 > --- a/lib/igt_core.h > +++ b/lib/igt_core.h > @@ -1519,4 +1519,10 @@ static inline void igt_pci_system_cleanup(void) > { > } > > +/** > + * set_gpu_string(): > + * Sets a string to describe the GPU being tested > + */ > +void set_gpu_string(const char *string); > + > #endif /* IGT_CORE_H */ > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 14+ messages in thread
* [igt-dev] [PATCH i-g-t 3/7] lib/igt_core: add prefix to logging [not found] <20221202205705.58879-1-kamil.konieczny@linux.intel.com> 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_core: store GPU string or opened device name Kamil Konieczny @ 2022-12-02 20:57 ` Kamil Konieczny 2022-12-05 6:12 ` Mauro Carvalho Chehab 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 4/7] lib/tests/igt_fork: add tests for igt_multi_fork Kamil Konieczny ` (5 subsequent siblings) 7 siblings, 1 reply; 14+ messages in thread From: Kamil Konieczny @ 2022-12-02 20:57 UTC (permalink / raw) To: igt-dev Allow to store prefix for logs and print it before any message. This will allow to diagnose on wich GPU occurred problems when tested on multi-GPU machines. Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> --- lib/igt_core.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/igt_core.c b/lib/igt_core.c index 68ae7289..65b7be64 100644 --- a/lib/igt_core.c +++ b/lib/igt_core.c @@ -348,6 +348,8 @@ static struct { uint8_t start, end; } log_buffer; static pthread_mutex_t log_buffer_mutex = PTHREAD_MUTEX_INITIALIZER; +#define LOG_PREFIX_SIZE 32 +char log_prefix[LOG_PREFIX_SIZE] = { 0 }; GKeyFile *igt_key_file; @@ -3105,8 +3107,12 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format, program_name = command_str; #endif - if (asprintf(&thread_id, "[thread:%d] ", gettid()) == -1) - thread_id = NULL; + if (igt_thread_is_main()) { + thread_id = strdup(log_prefix); + } else { + if (asprintf(&thread_id, "%s[thread:%d] ", log_prefix, gettid()) == -1) + thread_id = NULL; + } if (!thread_id) return; -- 2.34.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/7] lib/igt_core: add prefix to logging 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_core: add prefix to logging Kamil Konieczny @ 2022-12-05 6:12 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 14+ messages in thread From: Mauro Carvalho Chehab @ 2022-12-05 6:12 UTC (permalink / raw) To: Kamil Konieczny; +Cc: igt-dev On Fri, 2 Dec 2022 21:57:01 +0100 Kamil Konieczny <kamil.konieczny@linux.intel.com> wrote: > Allow to store prefix for logs and print it before any message. > This will allow to diagnose on wich GPU occurred problems when > tested on multi-GPU machines. > > Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org> > --- > lib/igt_core.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/lib/igt_core.c b/lib/igt_core.c > index 68ae7289..65b7be64 100644 > --- a/lib/igt_core.c > +++ b/lib/igt_core.c > @@ -348,6 +348,8 @@ static struct { > uint8_t start, end; > } log_buffer; > static pthread_mutex_t log_buffer_mutex = PTHREAD_MUTEX_INITIALIZER; > +#define LOG_PREFIX_SIZE 32 > +char log_prefix[LOG_PREFIX_SIZE] = { 0 }; > > GKeyFile *igt_key_file; > > @@ -3105,8 +3107,12 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format, > program_name = command_str; > #endif > > - if (asprintf(&thread_id, "[thread:%d] ", gettid()) == -1) > - thread_id = NULL; > + if (igt_thread_is_main()) { > + thread_id = strdup(log_prefix); > + } else { > + if (asprintf(&thread_id, "%s[thread:%d] ", log_prefix, gettid()) == -1) > + thread_id = NULL; > + } > > if (!thread_id) > return; ^ permalink raw reply [flat|nested] 14+ messages in thread
* [igt-dev] [PATCH i-g-t 4/7] lib/tests/igt_fork: add tests for igt_multi_fork [not found] <20221202205705.58879-1-kamil.konieczny@linux.intel.com> 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_core: store GPU string or opened device name Kamil Konieczny 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_core: add prefix to logging Kamil Konieczny @ 2022-12-02 20:57 ` Kamil Konieczny 2022-12-05 6:15 ` Mauro Carvalho Chehab 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 6/7] tests/i915/gem_exec_gttfill: add new subtest multigpu-basic Kamil Konieczny ` (4 subsequent siblings) 7 siblings, 1 reply; 14+ messages in thread From: Kamil Konieczny @ 2022-12-02 20:57 UTC (permalink / raw) To: igt-dev Create tests for new library macro igt_multi_fork. Also while at this, change comment into prints which helps testing. Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> --- lib/tests/igt_fork.c | 93 +++++++++++++++++++++++++++++++------------- 1 file changed, 65 insertions(+), 28 deletions(-) diff --git a/lib/tests/igt_fork.c b/lib/tests/igt_fork.c index d883aba4..163e16a7 100644 --- a/lib/tests/igt_fork.c +++ b/lib/tests/igt_fork.c @@ -37,13 +37,20 @@ char test[] = "test"; char *fake_argv[] = { test }; int fake_argc = ARRAY_SIZE(fake_argv); +int fork_type_dyn; __noreturn static void igt_fork_vs_skip(void) { igt_simple_init(fake_argc, fake_argv); - igt_fork(i, 1) { - igt_skip("skipping"); + if (fork_type_dyn) { + igt_multi_fork(i, 1) { + igt_skip("skipping multi-fork"); + } + } else { + igt_fork(i, 1) { + igt_skip("skipping fork"); + } } igt_waitchildren(); @@ -55,8 +62,14 @@ __noreturn static void igt_fork_vs_assert(void) { igt_simple_init(fake_argc, fake_argv); - igt_fork(i, 1) { - igt_assert(0); + if (fork_type_dyn) { + igt_multi_fork(i, 1) { + igt_assert(0); + } + } else { + igt_fork(i, 1) { + igt_assert(0); + } } igt_waitchildren(); @@ -68,8 +81,14 @@ __noreturn static void igt_fork_leak(void) { igt_simple_init(fake_argc, fake_argv); - igt_fork(i, 1) { - sleep(10); + if (fork_type_dyn) { + igt_multi_fork(i, 1) { + sleep(10); + } + } else { + igt_fork(i, 1) { + sleep(10); + } } igt_exit(); @@ -97,8 +116,14 @@ __noreturn static void igt_fork_timeout_leak(void) { igt_simple_init(fake_argc, fake_argv); - igt_fork(i, 1) { - sleep(10); + if (fork_type_dyn) { + igt_multi_fork(i, 1) { + sleep(10); + } + } else { + igt_fork(i, 1) { + sleep(10); + } } igt_waitchildren_timeout(1, "library test"); @@ -115,14 +140,19 @@ __noreturn static void subtest_leak(void) igt_subtest_init(fake_argc, fake_argv); igt_subtest("fork-leak") { - igt_fork(child, num_children) - children[child] = getpid(); + if (fork_type_dyn) { + igt_multi_fork(child, num_children) + children[child] = getpid(); + } else { + igt_fork(child, num_children) + children[child] = getpid(); + } /* leak the children */ igt_assert(0); } - /* We expect the exit_subtest to cleanup after the igt_fork */ + /* We expect the exit_subtest to cleanup after the igt_fork and igt_multi_fork */ for (int i = 0; i < num_children; i++) { if (children[i] > 0) assert(kill(children[i], 0) == -1 && errno == ESRCH); @@ -137,26 +167,33 @@ int main(int argc, char **argv) { int ret; - /* check that igt_assert is forwarded */ - ret = do_fork(igt_fork_vs_assert); - internal_assert_wexited(ret, IGT_EXIT_FAILURE); + for (fork_type_dyn = 0; fork_type_dyn <= 1; ++fork_type_dyn) { + printf("Checking %sfork ...\n", fork_type_dyn ? "multi-" : ""); + + printf("\ncheck that igt_assert is forwarded\n"); + ret = do_fork(igt_fork_vs_assert); + internal_assert_wexited(ret, IGT_EXIT_FAILURE); - /* check that igt_skip within a fork blows up */ - ret = do_fork(igt_fork_vs_skip); - internal_assert_wexited(ret, SIGABRT + 128); + printf("\ncheck that igt_skip within a fork blows up\n"); + ret = do_fork(igt_fork_vs_skip); + internal_assert_wexited(ret, SIGABRT + 128); - /* check that failure to clean up fails */ - ret = do_fork(igt_fork_leak); - internal_assert_wsignaled(ret, SIGABRT); + printf("\ncheck that failure to clean up fails\n"); + ret = do_fork(igt_fork_leak); + internal_assert_wsignaled(ret, SIGABRT); - /* check that igt_waitchildren_timeout cleans up*/ - ret = do_fork(igt_fork_timeout_leak); - internal_assert_wexited(ret, SIGKILL + 128); + printf("\ncheck that igt_waitchildren_timeout cleans up\n"); + ret = do_fork(igt_fork_timeout_leak); + internal_assert_wexited(ret, SIGKILL + 128); - /* check that any other process leaks are caught*/ - ret = do_fork(plain_fork_leak); - internal_assert_wsignaled(ret, SIGABRT); + printf("\ncheck that any other process leaks are caught\n"); + ret = do_fork(plain_fork_leak); + internal_assert_wsignaled(ret, SIGABRT); + + printf("\ncheck subtest leak %d\n", fork_type_dyn); + ret = do_fork(subtest_leak); + internal_assert_wexited(ret, IGT_EXIT_FAILURE); /* not asserted! */ + } - ret = do_fork(subtest_leak); - internal_assert_wexited(ret, IGT_EXIT_FAILURE); /* not asserted! */ + printf("SUCCESS all tests passed\n"); } -- 2.34.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 4/7] lib/tests/igt_fork: add tests for igt_multi_fork 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 4/7] lib/tests/igt_fork: add tests for igt_multi_fork Kamil Konieczny @ 2022-12-05 6:15 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 14+ messages in thread From: Mauro Carvalho Chehab @ 2022-12-05 6:15 UTC (permalink / raw) To: Kamil Konieczny; +Cc: igt-dev On Fri, 2 Dec 2022 21:57:02 +0100 Kamil Konieczny <kamil.konieczny@linux.intel.com> wrote: > Create tests for new library macro igt_multi_fork. Also while at > this, change comment into prints which helps testing. > > Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> LGTM. Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org> > --- > lib/tests/igt_fork.c | 93 +++++++++++++++++++++++++++++++------------- > 1 file changed, 65 insertions(+), 28 deletions(-) > > diff --git a/lib/tests/igt_fork.c b/lib/tests/igt_fork.c > index d883aba4..163e16a7 100644 > --- a/lib/tests/igt_fork.c > +++ b/lib/tests/igt_fork.c > @@ -37,13 +37,20 @@ > char test[] = "test"; > char *fake_argv[] = { test }; > int fake_argc = ARRAY_SIZE(fake_argv); > +int fork_type_dyn; > > __noreturn static void igt_fork_vs_skip(void) > { > igt_simple_init(fake_argc, fake_argv); > > - igt_fork(i, 1) { > - igt_skip("skipping"); > + if (fork_type_dyn) { > + igt_multi_fork(i, 1) { > + igt_skip("skipping multi-fork"); > + } > + } else { > + igt_fork(i, 1) { > + igt_skip("skipping fork"); > + } > } > > igt_waitchildren(); > @@ -55,8 +62,14 @@ __noreturn static void igt_fork_vs_assert(void) > { > igt_simple_init(fake_argc, fake_argv); > > - igt_fork(i, 1) { > - igt_assert(0); > + if (fork_type_dyn) { > + igt_multi_fork(i, 1) { > + igt_assert(0); > + } > + } else { > + igt_fork(i, 1) { > + igt_assert(0); > + } > } > > igt_waitchildren(); > @@ -68,8 +81,14 @@ __noreturn static void igt_fork_leak(void) > { > igt_simple_init(fake_argc, fake_argv); > > - igt_fork(i, 1) { > - sleep(10); > + if (fork_type_dyn) { > + igt_multi_fork(i, 1) { > + sleep(10); > + } > + } else { > + igt_fork(i, 1) { > + sleep(10); > + } > } > > igt_exit(); > @@ -97,8 +116,14 @@ __noreturn static void igt_fork_timeout_leak(void) > { > igt_simple_init(fake_argc, fake_argv); > > - igt_fork(i, 1) { > - sleep(10); > + if (fork_type_dyn) { > + igt_multi_fork(i, 1) { > + sleep(10); > + } > + } else { > + igt_fork(i, 1) { > + sleep(10); > + } > } > > igt_waitchildren_timeout(1, "library test"); > @@ -115,14 +140,19 @@ __noreturn static void subtest_leak(void) > igt_subtest_init(fake_argc, fake_argv); > > igt_subtest("fork-leak") { > - igt_fork(child, num_children) > - children[child] = getpid(); > + if (fork_type_dyn) { > + igt_multi_fork(child, num_children) > + children[child] = getpid(); > + } else { > + igt_fork(child, num_children) > + children[child] = getpid(); > + } > > /* leak the children */ > igt_assert(0); > } > > - /* We expect the exit_subtest to cleanup after the igt_fork */ > + /* We expect the exit_subtest to cleanup after the igt_fork and igt_multi_fork */ > for (int i = 0; i < num_children; i++) { > if (children[i] > 0) > assert(kill(children[i], 0) == -1 && errno == ESRCH); > @@ -137,26 +167,33 @@ int main(int argc, char **argv) > { > int ret; > > - /* check that igt_assert is forwarded */ > - ret = do_fork(igt_fork_vs_assert); > - internal_assert_wexited(ret, IGT_EXIT_FAILURE); > + for (fork_type_dyn = 0; fork_type_dyn <= 1; ++fork_type_dyn) { > + printf("Checking %sfork ...\n", fork_type_dyn ? "multi-" : ""); > + > + printf("\ncheck that igt_assert is forwarded\n"); > + ret = do_fork(igt_fork_vs_assert); > + internal_assert_wexited(ret, IGT_EXIT_FAILURE); > > - /* check that igt_skip within a fork blows up */ > - ret = do_fork(igt_fork_vs_skip); > - internal_assert_wexited(ret, SIGABRT + 128); > + printf("\ncheck that igt_skip within a fork blows up\n"); > + ret = do_fork(igt_fork_vs_skip); > + internal_assert_wexited(ret, SIGABRT + 128); > > - /* check that failure to clean up fails */ > - ret = do_fork(igt_fork_leak); > - internal_assert_wsignaled(ret, SIGABRT); > + printf("\ncheck that failure to clean up fails\n"); > + ret = do_fork(igt_fork_leak); > + internal_assert_wsignaled(ret, SIGABRT); > > - /* check that igt_waitchildren_timeout cleans up*/ > - ret = do_fork(igt_fork_timeout_leak); > - internal_assert_wexited(ret, SIGKILL + 128); > + printf("\ncheck that igt_waitchildren_timeout cleans up\n"); > + ret = do_fork(igt_fork_timeout_leak); > + internal_assert_wexited(ret, SIGKILL + 128); > > - /* check that any other process leaks are caught*/ > - ret = do_fork(plain_fork_leak); > - internal_assert_wsignaled(ret, SIGABRT); > + printf("\ncheck that any other process leaks are caught\n"); > + ret = do_fork(plain_fork_leak); > + internal_assert_wsignaled(ret, SIGABRT); > + > + printf("\ncheck subtest leak %d\n", fork_type_dyn); > + ret = do_fork(subtest_leak); > + internal_assert_wexited(ret, IGT_EXIT_FAILURE); /* not asserted! */ > + } > > - ret = do_fork(subtest_leak); > - internal_assert_wexited(ret, IGT_EXIT_FAILURE); /* not asserted! */ > + printf("SUCCESS all tests passed\n"); > } ^ permalink raw reply [flat|nested] 14+ messages in thread
* [igt-dev] [PATCH i-g-t 6/7] tests/i915/gem_exec_gttfill: add new subtest multigpu-basic [not found] <20221202205705.58879-1-kamil.konieczny@linux.intel.com> ` (2 preceding siblings ...) 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 4/7] lib/tests/igt_fork: add tests for igt_multi_fork Kamil Konieczny @ 2022-12-02 20:57 ` Kamil Konieczny 2022-12-05 6:28 ` Mauro Carvalho Chehab 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 7/7] tests/i915/gem_close_race: add multiGPU subtests Kamil Konieczny ` (3 subsequent siblings) 7 siblings, 1 reply; 14+ messages in thread From: Kamil Konieczny @ 2022-12-02 20:57 UTC (permalink / raw) To: igt-dev Add new subtest multigpu-basic to be run on two or more GPU cards simultanosly. For this to work test should be run with --device option, for example with: --device=pci:vendor=Intel,device=discrete,card=0\;pci:vendor=Intel,device=discrete,card=1 or --device=pci:vendor=Intel,device=discrete,card=all Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> --- tests/i915/gem_exec_gttfill.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/tests/i915/gem_exec_gttfill.c b/tests/i915/gem_exec_gttfill.c index f9f244d6..5be8428d 100644 --- a/tests/i915/gem_exec_gttfill.c +++ b/tests/i915/gem_exec_gttfill.c @@ -24,6 +24,7 @@ #include "i915/gem.h" #include "i915/gem_create.h" #include "igt.h" +#include "igt_device_scan.h" #include "igt_rand.h" IGT_TEST_DESCRIPTION("Fill the GTT with batches."); @@ -226,7 +227,7 @@ igt_main { const struct intel_execution_engine2 *e; const intel_ctx_t *ctx; - int i915 = -1; + int i915 = -1, gpu_count; igt_fixture { i915 = drm_open_driver(DRIVER_INTEL); @@ -258,9 +259,36 @@ igt_main fillgtt(i915, ctx, ALL_ENGINES, 20); igt_fixture { - intel_allocator_multiprocess_stop(); igt_stop_hang_detector(); intel_ctx_destroy(i915, ctx); + // prepare multigpu tests + gpu_count = igt_device_filter_count(); + if (gpu_count < 2) + gpu_count = 1; + } + + igt_subtest("multigpu-basic") { /* run on two or more discrete cards */ + igt_require(gpu_count > 1); + igt_multi_fork(child, gpu_count) { + int g_fd; + // prepare + g_fd = __drm_open_driver_another(child, DRIVER_INTEL); + igt_assert(g_fd >= 0); + ctx = intel_ctx_create_all_physical(g_fd); + igt_fork_hang_detector(g_fd); + // subtest + fillgtt(g_fd, ctx, ALL_ENGINES, 1); + // release resources + igt_stop_hang_detector(); + intel_ctx_destroy(g_fd, ctx); + close(g_fd); + } + + igt_waitchildren(); + } + + igt_fixture { + intel_allocator_multiprocess_stop(); close(i915); } } -- 2.34.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 6/7] tests/i915/gem_exec_gttfill: add new subtest multigpu-basic 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 6/7] tests/i915/gem_exec_gttfill: add new subtest multigpu-basic Kamil Konieczny @ 2022-12-05 6:28 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 14+ messages in thread From: Mauro Carvalho Chehab @ 2022-12-05 6:28 UTC (permalink / raw) To: Kamil Konieczny; +Cc: igt-dev On Fri, 2 Dec 2022 21:57:04 +0100 Kamil Konieczny <kamil.konieczny@linux.intel.com> wrote: > Add new subtest multigpu-basic to be run on two or more GPU cards > simultanosly. For this to work test should be run with --device > option, for example with: > --device=pci:vendor=Intel,device=discrete,card=0\;pci:vendor=Intel,device=discrete,card=1 > or > --device=pci:vendor=Intel,device=discrete,card=all > > Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> > --- > tests/i915/gem_exec_gttfill.c | 32 ++++++++++++++++++++++++++++++-- > 1 file changed, 30 insertions(+), 2 deletions(-) > > diff --git a/tests/i915/gem_exec_gttfill.c b/tests/i915/gem_exec_gttfill.c > index f9f244d6..5be8428d 100644 > --- a/tests/i915/gem_exec_gttfill.c > +++ b/tests/i915/gem_exec_gttfill.c > @@ -24,6 +24,7 @@ > #include "i915/gem.h" > #include "i915/gem_create.h" > #include "igt.h" > +#include "igt_device_scan.h" > #include "igt_rand.h" > > IGT_TEST_DESCRIPTION("Fill the GTT with batches."); > @@ -226,7 +227,7 @@ igt_main > { > const struct intel_execution_engine2 *e; > const intel_ctx_t *ctx; > - int i915 = -1; > + int i915 = -1, gpu_count; > > igt_fixture { > i915 = drm_open_driver(DRIVER_INTEL); > @@ -258,9 +259,36 @@ igt_main > fillgtt(i915, ctx, ALL_ENGINES, 20); > > igt_fixture { > - intel_allocator_multiprocess_stop(); > igt_stop_hang_detector(); > intel_ctx_destroy(i915, ctx); > + // prepare multigpu tests > + gpu_count = igt_device_filter_count(); > + if (gpu_count < 2) > + gpu_count = 1; Same command as on patch 5/7: there's no need to add this check... > + } > + > + igt_subtest("multigpu-basic") { /* run on two or more discrete cards */ > + igt_require(gpu_count > 1); As you're already asserting it here. > + igt_multi_fork(child, gpu_count) { > + int g_fd; > + // prepare > + g_fd = __drm_open_driver_another(child, DRIVER_INTEL); > + igt_assert(g_fd >= 0); > + ctx = intel_ctx_create_all_physical(g_fd); > + igt_fork_hang_detector(g_fd); > + // subtest > + fillgtt(g_fd, ctx, ALL_ENGINES, 1); > + // release resources > + igt_stop_hang_detector(); > + intel_ctx_destroy(g_fd, ctx); > + close(g_fd); > + } > + > + igt_waitchildren(); > + } > + > + igt_fixture { > + intel_allocator_multiprocess_stop(); > close(i915); > } > } After addressing it: Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org> Regards, Mauro ^ permalink raw reply [flat|nested] 14+ messages in thread
* [igt-dev] [PATCH i-g-t 7/7] tests/i915/gem_close_race: add multiGPU subtests [not found] <20221202205705.58879-1-kamil.konieczny@linux.intel.com> ` (3 preceding siblings ...) 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 6/7] tests/i915/gem_exec_gttfill: add new subtest multigpu-basic Kamil Konieczny @ 2022-12-02 20:57 ` Kamil Konieczny 2022-12-05 6:30 ` Mauro Carvalho Chehab 2022-12-02 21:38 ` [igt-dev] ✗ Fi.CI.BAT: failure for Add few multi-GPU subtests with the help of igt_multi_fork macro Patchwork ` (2 subsequent siblings) 7 siblings, 1 reply; 14+ messages in thread From: Kamil Konieczny @ 2022-12-02 20:57 UTC (permalink / raw) To: igt-dev Add two multiGPU subtests multigpu-basic-threads and multigpu-basic-process. Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> --- tests/i915/gem_close_race.c | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c index e37a8882..3ef073b8 100644 --- a/tests/i915/gem_close_race.c +++ b/tests/i915/gem_close_race.c @@ -47,6 +47,7 @@ #include "i915/gem_mman.h" #include "igt.h" #include "igt_aux.h" +#include "igt_device_scan.h" #define OBJECT_SIZE (256 * 1024) @@ -254,6 +255,31 @@ static void thread(int fd, struct drm_gem_open name, free(history); } +static void multigpu_threads(int timeout, unsigned int flags, int gpu_count) +{ + int size = sysconf(_SC_NPROCESSORS_ONLN); + + size /= gpu_count; + if (size < 1) + size = 1; + + igt_multi_fork(gpu, gpu_count) { + struct drm_gem_open name; + int fd = __drm_open_driver_another(gpu, DRIVER_INTEL); + + igt_assert(fd > 0); + + igt_fork(child, size) + thread(fd, name, timeout, flags); + + igt_waitchildren(); + gem_quiescent_gpu(fd); + close(fd); + } + + igt_waitchildren(); +} + static void threads(int timeout, unsigned int flags) { struct drm_gem_open name; @@ -272,6 +298,8 @@ static void threads(int timeout, unsigned int flags) igt_main { + int gpu_count; + igt_fixture { int fd; @@ -286,6 +314,10 @@ igt_main exec_addr = max_t(exec_addr, exec_addr, data_addr); data_addr += exec_addr; + gpu_count = igt_device_filter_count(); + if (gpu_count < 2) + gpu_count = 1; + igt_fork_hang_detector(fd); close(fd); } @@ -302,11 +334,33 @@ igt_main close(fd); } + igt_describe("Basic workload submission on multi-GPU machine."); + igt_subtest("multigpu-basic-process") { + igt_require(gpu_count > 1); + + igt_multi_fork(child, gpu_count) { + int fd = __drm_open_driver_another(child, DRIVER_INTEL); + + igt_assert(fd > 0); + process(fd, child); + gem_quiescent_gpu(fd); + close(fd); + } + + igt_waitchildren(); + } + igt_describe("Share buffer handle across different drm fd's and trying to race " " gem_close against continuous workload with minimum timeout."); igt_subtest("basic-threads") threads(1, 0); + igt_describe("Run basic-threads race on multi-GPU machine."); + igt_subtest("multigpu-basic-threads") { + igt_require(gpu_count > 1); + multigpu_threads(1, 0, gpu_count); + } + igt_describe("Test try to race gem_close against submission of continuous" " workload."); igt_subtest("process-exit") { -- 2.34.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 7/7] tests/i915/gem_close_race: add multiGPU subtests 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 7/7] tests/i915/gem_close_race: add multiGPU subtests Kamil Konieczny @ 2022-12-05 6:30 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 14+ messages in thread From: Mauro Carvalho Chehab @ 2022-12-05 6:30 UTC (permalink / raw) To: Kamil Konieczny; +Cc: igt-dev On Fri, 2 Dec 2022 21:57:05 +0100 Kamil Konieczny <kamil.konieczny@linux.intel.com> wrote: > Add two multiGPU subtests multigpu-basic-threads and > multigpu-basic-process. > > Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> > --- > tests/i915/gem_close_race.c | 54 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 54 insertions(+) > > diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c > index e37a8882..3ef073b8 100644 > --- a/tests/i915/gem_close_race.c > +++ b/tests/i915/gem_close_race.c > @@ -47,6 +47,7 @@ > #include "i915/gem_mman.h" > #include "igt.h" > #include "igt_aux.h" > +#include "igt_device_scan.h" > > #define OBJECT_SIZE (256 * 1024) > > @@ -254,6 +255,31 @@ static void thread(int fd, struct drm_gem_open name, > free(history); > } > > +static void multigpu_threads(int timeout, unsigned int flags, int gpu_count) > +{ > + int size = sysconf(_SC_NPROCESSORS_ONLN); > + > + size /= gpu_count; > + if (size < 1) > + size = 1; > + > + igt_multi_fork(gpu, gpu_count) { > + struct drm_gem_open name; > + int fd = __drm_open_driver_another(gpu, DRIVER_INTEL); > + > + igt_assert(fd > 0); > + > + igt_fork(child, size) > + thread(fd, name, timeout, flags); > + > + igt_waitchildren(); > + gem_quiescent_gpu(fd); > + close(fd); > + } > + > + igt_waitchildren(); > +} > + > static void threads(int timeout, unsigned int flags) > { > struct drm_gem_open name; > @@ -272,6 +298,8 @@ static void threads(int timeout, unsigned int flags) > > igt_main > { > + int gpu_count; > + > igt_fixture { > int fd; > > @@ -286,6 +314,10 @@ igt_main > exec_addr = max_t(exec_addr, exec_addr, data_addr); > data_addr += exec_addr; > > + gpu_count = igt_device_filter_count(); > + if (gpu_count < 2) > + gpu_count = 1; > + Same here: no need to enforce it. > igt_fork_hang_detector(fd); > close(fd); > } > @@ -302,11 +334,33 @@ igt_main > close(fd); > } > > + igt_describe("Basic workload submission on multi-GPU machine."); > + igt_subtest("multigpu-basic-process") { > + igt_require(gpu_count > 1); > + > + igt_multi_fork(child, gpu_count) { > + int fd = __drm_open_driver_another(child, DRIVER_INTEL); > + > + igt_assert(fd > 0); > + process(fd, child); > + gem_quiescent_gpu(fd); > + close(fd); > + } > + > + igt_waitchildren(); > + } > + > igt_describe("Share buffer handle across different drm fd's and trying to race " > " gem_close against continuous workload with minimum timeout."); > igt_subtest("basic-threads") > threads(1, 0); > > + igt_describe("Run basic-threads race on multi-GPU machine."); > + igt_subtest("multigpu-basic-threads") { > + igt_require(gpu_count > 1); > + multigpu_threads(1, 0, gpu_count); > + } > + > igt_describe("Test try to race gem_close against submission of continuous" > " workload."); > igt_subtest("process-exit") { As before, after cleaning up: Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org> ^ permalink raw reply [flat|nested] 14+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for Add few multi-GPU subtests with the help of igt_multi_fork macro [not found] <20221202205705.58879-1-kamil.konieczny@linux.intel.com> ` (4 preceding siblings ...) 2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 7/7] tests/i915/gem_close_race: add multiGPU subtests Kamil Konieczny @ 2022-12-02 21:38 ` Patchwork 2022-12-05 14:33 ` Kamil Konieczny [not found] ` <20221202205705.58879-6-kamil.konieczny@linux.intel.com> [not found] ` <20221202205705.58879-2-kamil.konieczny@linux.intel.com> 7 siblings, 1 reply; 14+ messages in thread From: Patchwork @ 2022-12-02 21:38 UTC (permalink / raw) To: Kamil Konieczny; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 15338 bytes --] == Series Details == Series: Add few multi-GPU subtests with the help of igt_multi_fork macro URL : https://patchwork.freedesktop.org/series/111594/ State : failure == Summary == CI Bug Log - changes from CI_DRM_12463 -> IGTPW_8189 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_8189 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_8189, 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_8189/index.html Participating hosts (32 -> 43) ------------------------------ Additional (13): fi-kbl-soraka bat-kbl-2 bat-adlp-9 fi-bsw-n3050 bat-dg1-5 bat-dg2-8 bat-dg2-9 bat-adlp-6 bat-adlp-4 fi-hsw-4770 bat-jsl-3 bat-dg2-11 fi-bsw-nick Missing (2): fi-ilk-m540 fi-tgl-dsi Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_8189: ### IGT changes ### #### Possible regressions #### * igt@i915_selftest@live@guc_hang: - fi-kbl-soraka: NOTRUN -> [INCOMPLETE][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@i915_selftest@live@guc_hang.html Known issues ------------ Here are the changes found in IGTPW_8189 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@debugfs_test@basic-hwmon: - bat-adlp-4: NOTRUN -> [SKIP][2] ([i915#7456]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@debugfs_test@basic-hwmon.html * igt@gem_exec_gttfill@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][3] ([fdo#109271]) +7 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@gem_exec_gttfill@basic.html * igt@gem_huc_copy@huc-copy: - fi-kbl-soraka: NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#2190]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@basic: - fi-kbl-soraka: NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#4613]) +3 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html * igt@gem_lmem_swapping@parallel-random-engines: - fi-bsw-nick: NOTRUN -> [SKIP][6] ([fdo#109271]) +39 similar issues [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-bsw-nick/igt@gem_lmem_swapping@parallel-random-engines.html - bat-adlp-4: NOTRUN -> [SKIP][7] ([i915#4613]) +3 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@gem_lmem_swapping@parallel-random-engines.html * igt@gem_mmap@basic: - bat-dg1-5: NOTRUN -> [SKIP][8] ([i915#4083]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@gem_mmap@basic.html * igt@gem_softpin@allocator-basic-reserve: - fi-hsw-4770: NOTRUN -> [SKIP][9] ([fdo#109271]) +11 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-hsw-4770/igt@gem_softpin@allocator-basic-reserve.html * igt@gem_tiled_blits@basic: - bat-dg1-5: NOTRUN -> [SKIP][10] ([i915#4077]) +2 similar issues [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@gem_tiled_blits@basic.html * igt@gem_tiled_pread_basic: - bat-dg1-5: NOTRUN -> [SKIP][11] ([i915#4079]) +1 similar issue [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@gem_tiled_pread_basic.html - bat-adlp-4: NOTRUN -> [SKIP][12] ([i915#3282]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@gem_tiled_pread_basic.html * igt@i915_module_load@load: - fi-bsw-n3050: NOTRUN -> [DMESG-WARN][13] ([i915#7430]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-bsw-n3050/igt@i915_module_load@load.html * igt@i915_pm_backlight@basic-brightness: - bat-dg1-5: NOTRUN -> [SKIP][14] ([i915#7561]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@i915_pm_backlight@basic-brightness.html * igt@i915_pm_rps@basic-api: - bat-adlp-4: NOTRUN -> [SKIP][15] ([i915#6621]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@i915_pm_rps@basic-api.html - bat-dg1-5: NOTRUN -> [SKIP][16] ([i915#6621]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@i915_pm_rps@basic-api.html * igt@i915_selftest@live@gt_heartbeat: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][17] ([i915#5334]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@gt_pm: - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][18] ([i915#1886]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html * igt@i915_selftest@live@hangcheck: - fi-hsw-4770: NOTRUN -> [INCOMPLETE][19] ([i915#4785]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html * igt@kms_addfb_basic@basic-x-tiled-legacy: - bat-dg1-5: NOTRUN -> [SKIP][20] ([i915#4212]) +7 similar issues [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_addfb_basic@basic-x-tiled-legacy.html * igt@kms_addfb_basic@basic-y-tiled-legacy: - bat-dg1-5: NOTRUN -> [SKIP][21] ([i915#4215]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_addfb_basic@basic-y-tiled-legacy.html * igt@kms_chamelium@dp-crc-fast: - fi-hsw-4770: NOTRUN -> [SKIP][22] ([fdo#109271] / [fdo#111827]) +7 similar issues [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-hsw-4770/igt@kms_chamelium@dp-crc-fast.html - bat-adlp-4: NOTRUN -> [SKIP][23] ([fdo#111827]) +8 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@kms_chamelium@dp-crc-fast.html - bat-dg1-5: NOTRUN -> [SKIP][24] ([fdo#111827]) +8 similar issues [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_chamelium@dp-crc-fast.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-bsw-nick: NOTRUN -> [SKIP][25] ([fdo#109271] / [fdo#111827]) +8 similar issues [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-bsw-nick/igt@kms_chamelium@hdmi-hpd-fast.html - fi-kbl-soraka: NOTRUN -> [SKIP][26] ([fdo#109271] / [fdo#111827]) +7 similar issues [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@kms_chamelium@hdmi-hpd-fast.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor: - bat-adlp-4: NOTRUN -> [SKIP][27] ([i915#4103]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html - bat-dg1-5: NOTRUN -> [SKIP][28] ([i915#4103] / [i915#4213]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html * igt@kms_force_connector_basic@force-load-detect: - bat-adlp-4: NOTRUN -> [SKIP][29] ([i915#4093]) +3 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@kms_force_connector_basic@force-load-detect.html - bat-dg1-5: NOTRUN -> [SKIP][30] ([fdo#109285]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_pipe_crc_basic@suspend-read-crc: - bat-adlp-4: NOTRUN -> [SKIP][31] ([i915#3546]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@kms_pipe_crc_basic@suspend-read-crc.html * igt@kms_psr@primary_page_flip: - bat-dg1-5: NOTRUN -> [SKIP][32] ([i915#1072] / [i915#4078]) +3 similar issues [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_psr@primary_page_flip.html * igt@kms_psr@sprite_plane_onoff: - fi-hsw-4770: NOTRUN -> [SKIP][33] ([fdo#109271] / [i915#1072]) +3 similar issues [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html * igt@kms_setmode@basic-clone-single-crtc: - bat-dg1-5: NOTRUN -> [SKIP][34] ([i915#3555]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_setmode@basic-clone-single-crtc.html - bat-adlp-4: NOTRUN -> [SKIP][35] ([i915#3555] / [i915#4579]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-fence-read: - bat-dg1-5: NOTRUN -> [SKIP][36] ([i915#3708]) +3 similar issues [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@prime_vgem@basic-fence-read.html * igt@prime_vgem@basic-gtt: - bat-dg1-5: NOTRUN -> [SKIP][37] ([i915#3708] / [i915#4077]) +1 similar issue [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@prime_vgem@basic-gtt.html * igt@prime_vgem@basic-userptr: - bat-adlp-4: NOTRUN -> [SKIP][38] ([fdo#109295] / [i915#3301] / [i915#3708]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@prime_vgem@basic-userptr.html - bat-dg1-5: NOTRUN -> [SKIP][39] ([i915#3708] / [i915#4873]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@prime_vgem@basic-userptr.html * igt@prime_vgem@basic-write: - bat-adlp-4: NOTRUN -> [SKIP][40] ([fdo#109295] / [i915#3291] / [i915#3708]) +2 similar issues [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@prime_vgem@basic-write.html * igt@runner@aborted: - fi-hsw-4770: NOTRUN -> [FAIL][41] ([fdo#109271] / [i915#4312] / [i915#5594]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-hsw-4770/igt@runner@aborted.html - fi-bsw-n3050: NOTRUN -> [FAIL][42] ([i915#4312]) [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-bsw-n3050/igt@runner@aborted.html #### Possible fixes #### * igt@gem_exec_suspend@basic-s0@smem: - {bat-rplp-1}: [DMESG-WARN][43] ([i915#2867]) -> [PASS][44] [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12463/bat-rplp-1/igt@gem_exec_suspend@basic-s0@smem.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-rplp-1/igt@gem_exec_suspend@basic-s0@smem.html * igt@i915_selftest@live@hangcheck: - {fi-ehl-2}: [INCOMPLETE][45] -> [PASS][46] [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12463/fi-ehl-2/igt@i915_selftest@live@hangcheck.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-ehl-2/igt@i915_selftest@live@hangcheck.html * igt@i915_selftest@live@reset: - {bat-rpls-2}: [DMESG-FAIL][47] ([i915#4983]) -> [PASS][48] [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12463/bat-rpls-2/igt@i915_selftest@live@reset.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-rpls-2/igt@i915_selftest@live@reset.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#3003]: https://gitlab.freedesktop.org/drm/intel/issues/3003 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4093]: https://gitlab.freedesktop.org/drm/intel/issues/4093 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215 [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785 [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5594]: https://gitlab.freedesktop.org/drm/intel/issues/5594 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#6434]: https://gitlab.freedesktop.org/drm/intel/issues/6434 [i915#6559]: https://gitlab.freedesktop.org/drm/intel/issues/6559 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645 [i915#7346]: https://gitlab.freedesktop.org/drm/intel/issues/7346 [i915#7430]: https://gitlab.freedesktop.org/drm/intel/issues/7430 [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456 [i915#7498]: https://gitlab.freedesktop.org/drm/intel/issues/7498 [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7080 -> IGTPW_8189 CI-20190529: 20190529 CI_DRM_12463: b36215855627efb694b50c6cc0ba47b0e78d5aa5 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8189: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/index.html IGT_7080: 14721e0783757dfa44ca2677851c3ba508b09682 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Testlist changes ---------------- +igt@gem_basic@multigpu-create-close +igt@gem_close_race@multigpu-basic-process +igt@gem_close_race@multigpu-basic-threads +igt@gem_exec_gttfill@multigpu-basic == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/index.html [-- Attachment #2: Type: text/html, Size: 17880 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.BAT: failure for Add few multi-GPU subtests with the help of igt_multi_fork macro 2022-12-02 21:38 ` [igt-dev] ✗ Fi.CI.BAT: failure for Add few multi-GPU subtests with the help of igt_multi_fork macro Patchwork @ 2022-12-05 14:33 ` Kamil Konieczny 0 siblings, 0 replies; 14+ messages in thread From: Kamil Konieczny @ 2022-12-05 14:33 UTC (permalink / raw) To: igt-dev; +Cc: Lakshminarayana Vudum Hi Lakshmi, these are unrelated, -- Kamil On 2022-12-02 at 21:38:06 -0000, Patchwork wrote: > == Series Details == > > Series: Add few multi-GPU subtests with the help of igt_multi_fork macro > URL : https://patchwork.freedesktop.org/series/111594/ > State : failure > > == Summary == > > CI Bug Log - changes from CI_DRM_12463 -> IGTPW_8189 > ==================================================== > > Summary > ------- > > **FAILURE** > > Serious unknown changes coming with IGTPW_8189 absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in IGTPW_8189, 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_8189/index.html > > Participating hosts (32 -> 43) > ------------------------------ > > Additional (13): fi-kbl-soraka bat-kbl-2 bat-adlp-9 fi-bsw-n3050 bat-dg1-5 bat-dg2-8 bat-dg2-9 bat-adlp-6 bat-adlp-4 fi-hsw-4770 bat-jsl-3 bat-dg2-11 fi-bsw-nick > Missing (2): fi-ilk-m540 fi-tgl-dsi > > Possible new issues > ------------------- > > Here are the unknown changes that may have been introduced in IGTPW_8189: > > ### IGT changes ### > > #### Possible regressions #### > > * igt@i915_selftest@live@guc_hang: > - fi-kbl-soraka: NOTRUN -> [INCOMPLETE][1] > [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@i915_selftest@live@guc_hang.html > > > Known issues > ------------ > > Here are the changes found in IGTPW_8189 that come from known issues: > > ### IGT changes ### > > #### Issues hit #### > > * igt@debugfs_test@basic-hwmon: > - bat-adlp-4: NOTRUN -> [SKIP][2] ([i915#7456]) > [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@debugfs_test@basic-hwmon.html > > * igt@gem_exec_gttfill@basic: > - fi-kbl-soraka: NOTRUN -> [SKIP][3] ([fdo#109271]) +7 similar issues > [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@gem_exec_gttfill@basic.html > > * igt@gem_huc_copy@huc-copy: > - fi-kbl-soraka: NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#2190]) > [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html > > * igt@gem_lmem_swapping@basic: > - fi-kbl-soraka: NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#4613]) +3 similar issues > [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html > > * igt@gem_lmem_swapping@parallel-random-engines: > - fi-bsw-nick: NOTRUN -> [SKIP][6] ([fdo#109271]) +39 similar issues > [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-bsw-nick/igt@gem_lmem_swapping@parallel-random-engines.html > - bat-adlp-4: NOTRUN -> [SKIP][7] ([i915#4613]) +3 similar issues > [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@gem_lmem_swapping@parallel-random-engines.html > > * igt@gem_mmap@basic: > - bat-dg1-5: NOTRUN -> [SKIP][8] ([i915#4083]) > [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@gem_mmap@basic.html > > * igt@gem_softpin@allocator-basic-reserve: > - fi-hsw-4770: NOTRUN -> [SKIP][9] ([fdo#109271]) +11 similar issues > [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-hsw-4770/igt@gem_softpin@allocator-basic-reserve.html > > * igt@gem_tiled_blits@basic: > - bat-dg1-5: NOTRUN -> [SKIP][10] ([i915#4077]) +2 similar issues > [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@gem_tiled_blits@basic.html > > * igt@gem_tiled_pread_basic: > - bat-dg1-5: NOTRUN -> [SKIP][11] ([i915#4079]) +1 similar issue > [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@gem_tiled_pread_basic.html > - bat-adlp-4: NOTRUN -> [SKIP][12] ([i915#3282]) > [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@gem_tiled_pread_basic.html > > * igt@i915_module_load@load: > - fi-bsw-n3050: NOTRUN -> [DMESG-WARN][13] ([i915#7430]) > [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-bsw-n3050/igt@i915_module_load@load.html > > * igt@i915_pm_backlight@basic-brightness: > - bat-dg1-5: NOTRUN -> [SKIP][14] ([i915#7561]) > [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@i915_pm_backlight@basic-brightness.html > > * igt@i915_pm_rps@basic-api: > - bat-adlp-4: NOTRUN -> [SKIP][15] ([i915#6621]) > [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@i915_pm_rps@basic-api.html > - bat-dg1-5: NOTRUN -> [SKIP][16] ([i915#6621]) > [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@i915_pm_rps@basic-api.html > > * igt@i915_selftest@live@gt_heartbeat: > - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][17] ([i915#5334]) > [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html > > * igt@i915_selftest@live@gt_pm: > - fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][18] ([i915#1886]) > [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html > > * igt@i915_selftest@live@hangcheck: > - fi-hsw-4770: NOTRUN -> [INCOMPLETE][19] ([i915#4785]) > [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html > > * igt@kms_addfb_basic@basic-x-tiled-legacy: > - bat-dg1-5: NOTRUN -> [SKIP][20] ([i915#4212]) +7 similar issues > [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_addfb_basic@basic-x-tiled-legacy.html > > * igt@kms_addfb_basic@basic-y-tiled-legacy: > - bat-dg1-5: NOTRUN -> [SKIP][21] ([i915#4215]) > [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_addfb_basic@basic-y-tiled-legacy.html > > * igt@kms_chamelium@dp-crc-fast: > - fi-hsw-4770: NOTRUN -> [SKIP][22] ([fdo#109271] / [fdo#111827]) +7 similar issues > [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-hsw-4770/igt@kms_chamelium@dp-crc-fast.html > - bat-adlp-4: NOTRUN -> [SKIP][23] ([fdo#111827]) +8 similar issues > [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@kms_chamelium@dp-crc-fast.html > - bat-dg1-5: NOTRUN -> [SKIP][24] ([fdo#111827]) +8 similar issues > [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_chamelium@dp-crc-fast.html > > * igt@kms_chamelium@hdmi-hpd-fast: > - fi-bsw-nick: NOTRUN -> [SKIP][25] ([fdo#109271] / [fdo#111827]) +8 similar issues > [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-bsw-nick/igt@kms_chamelium@hdmi-hpd-fast.html > - fi-kbl-soraka: NOTRUN -> [SKIP][26] ([fdo#109271] / [fdo#111827]) +7 similar issues > [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-kbl-soraka/igt@kms_chamelium@hdmi-hpd-fast.html > > * igt@kms_cursor_legacy@basic-busy-flip-before-cursor: > - bat-adlp-4: NOTRUN -> [SKIP][27] ([i915#4103]) > [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html > - bat-dg1-5: NOTRUN -> [SKIP][28] ([i915#4103] / [i915#4213]) > [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html > > * igt@kms_force_connector_basic@force-load-detect: > - bat-adlp-4: NOTRUN -> [SKIP][29] ([i915#4093]) +3 similar issues > [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@kms_force_connector_basic@force-load-detect.html > - bat-dg1-5: NOTRUN -> [SKIP][30] ([fdo#109285]) > [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_force_connector_basic@force-load-detect.html > > * igt@kms_pipe_crc_basic@suspend-read-crc: > - bat-adlp-4: NOTRUN -> [SKIP][31] ([i915#3546]) > [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@kms_pipe_crc_basic@suspend-read-crc.html > > * igt@kms_psr@primary_page_flip: > - bat-dg1-5: NOTRUN -> [SKIP][32] ([i915#1072] / [i915#4078]) +3 similar issues > [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_psr@primary_page_flip.html > > * igt@kms_psr@sprite_plane_onoff: > - fi-hsw-4770: NOTRUN -> [SKIP][33] ([fdo#109271] / [i915#1072]) +3 similar issues > [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html > > * igt@kms_setmode@basic-clone-single-crtc: > - bat-dg1-5: NOTRUN -> [SKIP][34] ([i915#3555]) > [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@kms_setmode@basic-clone-single-crtc.html > - bat-adlp-4: NOTRUN -> [SKIP][35] ([i915#3555] / [i915#4579]) > [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@kms_setmode@basic-clone-single-crtc.html > > * igt@prime_vgem@basic-fence-read: > - bat-dg1-5: NOTRUN -> [SKIP][36] ([i915#3708]) +3 similar issues > [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@prime_vgem@basic-fence-read.html > > * igt@prime_vgem@basic-gtt: > - bat-dg1-5: NOTRUN -> [SKIP][37] ([i915#3708] / [i915#4077]) +1 similar issue > [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@prime_vgem@basic-gtt.html > > * igt@prime_vgem@basic-userptr: > - bat-adlp-4: NOTRUN -> [SKIP][38] ([fdo#109295] / [i915#3301] / [i915#3708]) > [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@prime_vgem@basic-userptr.html > - bat-dg1-5: NOTRUN -> [SKIP][39] ([i915#3708] / [i915#4873]) > [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-dg1-5/igt@prime_vgem@basic-userptr.html > > * igt@prime_vgem@basic-write: > - bat-adlp-4: NOTRUN -> [SKIP][40] ([fdo#109295] / [i915#3291] / [i915#3708]) +2 similar issues > [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-adlp-4/igt@prime_vgem@basic-write.html > > * igt@runner@aborted: > - fi-hsw-4770: NOTRUN -> [FAIL][41] ([fdo#109271] / [i915#4312] / [i915#5594]) > [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-hsw-4770/igt@runner@aborted.html > - fi-bsw-n3050: NOTRUN -> [FAIL][42] ([i915#4312]) > [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-bsw-n3050/igt@runner@aborted.html > > > #### Possible fixes #### > > * igt@gem_exec_suspend@basic-s0@smem: > - {bat-rplp-1}: [DMESG-WARN][43] ([i915#2867]) -> [PASS][44] > [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12463/bat-rplp-1/igt@gem_exec_suspend@basic-s0@smem.html > [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-rplp-1/igt@gem_exec_suspend@basic-s0@smem.html > > * igt@i915_selftest@live@hangcheck: > - {fi-ehl-2}: [INCOMPLETE][45] -> [PASS][46] > [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12463/fi-ehl-2/igt@i915_selftest@live@hangcheck.html > [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/fi-ehl-2/igt@i915_selftest@live@hangcheck.html > > * igt@i915_selftest@live@reset: > - {bat-rpls-2}: [DMESG-FAIL][47] ([i915#4983]) -> [PASS][48] > [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12463/bat-rpls-2/igt@i915_selftest@live@reset.html > [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/bat-rpls-2/igt@i915_selftest@live@reset.html > > > {name}: This element is suppressed. This means it is ignored when computing > the status of the difference (SUCCESS, WARNING, or FAILURE). > > [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 > [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 > [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 > [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 > [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 > [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886 > [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 > [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582 > [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 > [i915#3003]: https://gitlab.freedesktop.org/drm/intel/issues/3003 > [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 > [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 > [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 > [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546 > [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 > [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 > [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 > [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 > [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 > [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 > [i915#4093]: https://gitlab.freedesktop.org/drm/intel/issues/4093 > [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 > [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 > [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 > [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215 > [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258 > [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 > [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579 > [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 > [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785 > [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873 > [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 > [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 > [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274 > [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 > [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 > [i915#5594]: https://gitlab.freedesktop.org/drm/intel/issues/5594 > [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 > [i915#6434]: https://gitlab.freedesktop.org/drm/intel/issues/6434 > [i915#6559]: https://gitlab.freedesktop.org/drm/intel/issues/6559 > [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 > [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645 > [i915#7346]: https://gitlab.freedesktop.org/drm/intel/issues/7346 > [i915#7430]: https://gitlab.freedesktop.org/drm/intel/issues/7430 > [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456 > [i915#7498]: https://gitlab.freedesktop.org/drm/intel/issues/7498 > [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 > > > Build changes > ------------- > > * CI: CI-20190529 -> None > * IGT: IGT_7080 -> IGTPW_8189 > > CI-20190529: 20190529 > CI_DRM_12463: b36215855627efb694b50c6cc0ba47b0e78d5aa5 @ git://anongit.freedesktop.org/gfx-ci/linux > IGTPW_8189: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/index.html > IGT_7080: 14721e0783757dfa44ca2677851c3ba508b09682 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git > > > Testlist changes > ---------------- > > +igt@gem_basic@multigpu-create-close > +igt@gem_close_race@multigpu-basic-process > +igt@gem_close_race@multigpu-basic-threads > +igt@gem_exec_gttfill@multigpu-basic > > == Logs == > > For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8189/index.html ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <20221202205705.58879-6-kamil.konieczny@linux.intel.com>]
* Re: [igt-dev] [PATCH i-g-t 5/7] tests/i915/gem_basic: add multigpu-create-close subtest [not found] ` <20221202205705.58879-6-kamil.konieczny@linux.intel.com> @ 2022-12-05 6:10 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 14+ messages in thread From: Mauro Carvalho Chehab @ 2022-12-05 6:10 UTC (permalink / raw) To: Kamil Konieczny; +Cc: igt-dev, Petri Latvala On Fri, 2 Dec 2022 21:57:03 +0100 Kamil Konieczny <kamil.konieczny@linux.intel.com> wrote: > 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. > > Cc: Anna Karas <anna.karas@intel.com> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > Cc: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com> > Cc: Petri Latvala <petri.latvala@intel.com> > Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> > --- > tests/i915/gem_basic.c | 24 +++++++++++++++++++++++- > 1 file changed, 23 insertions(+), 1 deletion(-) > > diff --git a/tests/i915/gem_basic.c b/tests/i915/gem_basic.c > index 2aa5d850..9ee09782 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,10 +84,16 @@ test_create_fd_close(int fd) > igt_main > { > igt_fd_t(fd); > + int gpu_count; > > - igt_fixture > + igt_fixture { > + int count; > fd = drm_open_driver(DRIVER_INTEL); > > + count = igt_device_filter_count(); > + gpu_count = count >= 2 ? count : 1; Hmm... I would just do: gpu_count = igt_device_filter_count(); As it seems that you're just wanting to ensure that gpu_count is >= 1 here... > + } > + > igt_describe("Verify that gem_close fails with bad params."); > igt_subtest("bad-close") > test_bad_close(fd); > @@ -95,6 +102,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); ... Yet, this is the only place where you use gpu_count. So, count <= 0 won't cause any troubles. > + 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); Once applying this cleanup, feel free to add by RB: Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org> Regards, Mauro ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <20221202205705.58879-2-kamil.konieczny@linux.intel.com>]
* Re: [igt-dev] [PATCH i-g-t 1/7] lib/igt_core: add igt_multi_fork for parallel tests [not found] ` <20221202205705.58879-2-kamil.konieczny@linux.intel.com> @ 2022-12-05 6:32 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 14+ messages in thread From: Mauro Carvalho Chehab @ 2022-12-05 6:32 UTC (permalink / raw) To: Kamil Konieczny; +Cc: igt-dev, Petri Latvala On Fri, 2 Dec 2022 21:56:59 +0100 Kamil Konieczny <kamil.konieczny@linux.intel.com> wrote: > Add new macro igt_multi_fork() to igt_core. These should help in > adding tests for multi-GPU hardware as it allows to reuse > existing subtests which may use igt_fork() once. > > Cc: Anna Karas <anna.karas@intel.com> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > Cc: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com> > Cc: Petri Latvala <petri.latvala@intel.com> > Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> LGTM. Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org> > --- > lib/igt_core.c | 207 ++++++++++++++++++++++++++++++++++++++++++++----- > lib/igt_core.h | 21 +++++ > 2 files changed, 209 insertions(+), 19 deletions(-) > > diff --git a/lib/igt_core.c b/lib/igt_core.c > index b77dca91..dca380d0 100644 > --- a/lib/igt_core.c > +++ b/lib/igt_core.c > @@ -310,6 +310,12 @@ int num_test_children; > int test_children_sz; > bool test_child; > > +/* fork dynamic support state */ > +pid_t *test_multi_fork_children; > +int num_test_multi_fork_children; > +int test_multi_fork_children_sz; > +bool test_multi_fork_child; > + > /* For allocator purposes */ > pid_t child_pid = -1; > __thread pid_t child_tid = -1; > @@ -1560,6 +1566,16 @@ bool __igt_enter_dynamic_container(void) > return true; > } > > +static void kill_and_wait(pid_t *pids, int size, int signum) > +{ > + for (int c = 0; c < size; c++) { > + if (pids[c] > 0) { > + kill(pids[c], signum); > + waitpid(pids[c], NULL, 0); /* don't leave zombies! */ > + } > + } > +} > + > __noreturn static void exit_subtest(const char *result) > { > struct timespec now; > @@ -1569,11 +1585,13 @@ __noreturn static void exit_subtest(const char *result) > > igt_gettime(&now); > > + if (test_multi_fork_child) > + __igt_plain_output = true; > + > _subtest_result_message(in_dynamic_subtest ? _SUBTEST_TYPE_DYNAMIC : _SUBTEST_TYPE_NORMAL, > *subtest_name, > result, > igt_time_elapsed(thentime, &now)); > - > igt_terminate_spins(); > > /* If the subtest aborted, it may have left children behind */ > @@ -1584,6 +1602,10 @@ __noreturn static void exit_subtest(const char *result) > } > } > num_test_children = 0; > + if (!test_multi_fork_child && num_test_multi_fork_children > 0) > + kill_and_wait(test_multi_fork_children, num_test_multi_fork_children, SIGKILL); > + > + num_test_multi_fork_children = 0; > > /* > * When test completes - mostly in fail state it can leave allocated > @@ -1605,9 +1627,10 @@ __noreturn static void exit_subtest(const char *result) > > /* > * Don't keep the above text in the log if exiting a dynamic > - * subsubtest, the subtest would print it again otherwise > + * subsubtest, the subtest would print it again otherwise. > + * Also don't keep it if called from multi_fork. > */ > - if (in_dynamic_subtest) > + if (in_dynamic_subtest || test_multi_fork_child) > _igt_log_buffer_reset(); > > *subtest_name = NULL; > @@ -1636,6 +1659,8 @@ void igt_skip(const char *f, ...) > > internal_assert(!test_child, > "skips are not allowed in forks\n"); > + internal_assert(!test_multi_fork_child, > + "skips are not allowed in multi_fork\n"); > > if (!igt_only_list_subtests()) { > va_start(args, f); > @@ -1778,7 +1803,7 @@ void igt_fail(int exitcode) > dynamic_failed_one = true; > } else { > /* Dynamic subtest containers must not fail explicitly */ > - assert(_igt_dynamic_tests_executed < 0 || dynamic_failed_one); > + assert(test_multi_fork_child || _igt_dynamic_tests_executed < 0 || dynamic_failed_one); > > if (!failed_one) > igt_exitcode = exitcode; > @@ -1792,6 +1817,9 @@ void igt_fail(int exitcode) > > _igt_log_buffer_dump(); > > + if (test_multi_fork_child) > + exit(exitcode); > + > if (in_subtest) { > exit_subtest("FAIL"); > } else { > @@ -2156,6 +2184,11 @@ void igt_kill_children(int signal) > if (test_children[c] > 0) > kill(test_children[c], signal); > } > + > + for (int c = 0; c < num_test_multi_fork_children; c++) { > + if (test_multi_fork_children[c] > 0) > + kill(test_multi_fork_children[c], signal); > + } > } > > void __igt_abort(const char *domain, const char *file, const int line, > @@ -2241,13 +2274,17 @@ void igt_exit(void) > igt_exitcode = IGT_EXIT_SKIP; > } > > - if (command_str) > - igt_kmsg(KMSG_INFO "%s: exiting, ret=%d\n", > - command_str, igt_exitcode); > - igt_debug("Exiting with status code %d\n", igt_exitcode); > + if (!test_multi_fork_child) { > + /* parent will do the yelling */ > + if (command_str) > + igt_kmsg(KMSG_INFO "%s: exiting, ret=%d\n", > + command_str, igt_exitcode); > + igt_debug("Exiting with status code %d\n", igt_exitcode); > + } > > igt_kill_children(SIGKILL); > assert(!num_test_children); > + assert(!num_test_multi_fork_children); > > assert(waitpid(-1, &tmp, WNOHANG) == -1 && errno == ECHILD); > > @@ -2268,8 +2305,13 @@ void igt_exit(void) > result = "FAIL"; > } > > - _log_line_fprintf(stdout, "%s (%.3fs)\n", > - result, igt_time_elapsed(&subtest_time, &now)); > + if (test_multi_fork_child) /* parent will do the yelling */ > + _log_line_fprintf(stdout, "dyn_child pid:%d (%.3fs) ends with err=%d\n", > + getpid(), igt_time_elapsed(&subtest_time, &now), > + igt_exitcode); > + else > + _log_line_fprintf(stdout, "%s (%.3fs)\n", > + result, igt_time_elapsed(&subtest_time, &now)); > } > > exit(igt_exitcode); > @@ -2468,6 +2510,64 @@ bool __igt_fork(void) > > } > > +static void dyn_children_exit_handler(int sig) > +{ > + int status; > + > + /* The exit handler can be called from a fatal signal, so play safe */ > + while (num_test_multi_fork_children-- && wait(&status)) > + ; > +} > + > +bool __igt_multi_fork(void) > +{ > + internal_assert(!test_with_subtests || in_subtest, > + "multi-forking is only allowed in subtests or igt_simple_main\n"); > + internal_assert(!test_child, > + "multi-forking is not allowed from already forked children\n"); > + internal_assert(!test_multi_fork_child, > + "multi-forking is not allowed from already multi-forked children\n"); > + > + if (!num_test_multi_fork_children) > + igt_install_exit_handler(dyn_children_exit_handler); > + > + if (num_test_multi_fork_children >= test_multi_fork_children_sz) { > + if (!test_multi_fork_children_sz) > + test_multi_fork_children_sz = 4; > + else > + test_multi_fork_children_sz *= 2; > + > + test_multi_fork_children = realloc(test_multi_fork_children, > + sizeof(pid_t)*test_multi_fork_children_sz); > + igt_assert(test_multi_fork_children); > + } > + > + /* ensure any buffers are flushed before fork */ > + fflush(NULL); > + > + switch (test_multi_fork_children[num_test_multi_fork_children++] = fork()) { > + case -1: > + num_test_multi_fork_children--; /* so we won't kill(-1) during cleanup */ > + igt_assert(0); > + case 0: > + test_multi_fork_child = true; > + snprintf(log_prefix, LOG_PREFIX_SIZE, "<g:%d> ", num_test_multi_fork_children - 1); > + num_test_multi_fork_children = 0; /* only parent should care */ > + pthread_mutex_init(&print_mutex, NULL); > + child_pid = getpid(); /* for allocator */ > + child_tid = -1; /* for allocator */ > + exit_handler_count = 0; > + reset_helper_process_list(); > + oom_adjust_for_doom(); > + igt_unshare_spins(); > + > + return true; > + default: > + return false; > + } > + > +} > + > int __igt_waitchildren(void) > { > int err = 0; > @@ -2537,11 +2637,82 @@ int __igt_waitchildren(void) > */ > void igt_waitchildren(void) > { > - int err = __igt_waitchildren(); > + int err; > + > + if (num_test_multi_fork_children) > + err = __igt_multi_wait(); > + else > + err = __igt_waitchildren(); > + > if (err) > igt_fail(err); > } > > +int __igt_multi_wait(void) > +{ > + int err = 0; > + int count; > + bool was_killed = false; > + > + assert(!test_multi_fork_child); > + count = 0; > + while (count < num_test_multi_fork_children) { > + int status = -1; > + int last = 0; > + pid_t pid; > + int c; > + > + pid = wait(&status); > + if (pid == -1) { > + if (errno == EINTR) > + continue; > + > + igt_debug("wait(multi_fork children running:%d) failed with %m\n", > + num_test_multi_fork_children - count); > + return IGT_EXIT_FAILURE; > + } > + > + for (c = 0; c < num_test_multi_fork_children; c++) > + if (pid == test_multi_fork_children[c]) > + break; > + if (c == num_test_multi_fork_children) > + continue; > + > + if (status != 0) { > + if (WIFEXITED(status)) { > + printf("dynamic child %i pid:%d failed with exit status %i\n", > + c, pid, WEXITSTATUS(status)); > + last = WEXITSTATUS(status); > + test_multi_fork_children[c] = -1; > + } else if (WIFSIGNALED(status)) { > + printf("dynamic child %i pid:%d died with signal %i, %s\n", > + c, pid, WTERMSIG(status), > + strsignal(WTERMSIG(status))); > + last = 128 + WTERMSIG(status); > + test_multi_fork_children[c] = -1; > + } else { > + printf("Unhandled failure [%d] in dynamic child %i pid:%d\n", > + status, c, pid); > + last = 256; > + } > + > + /* we don't want to overwrite error with skip */ > + if (err == 0 || err == IGT_EXIT_SKIP) > + err = last; > + if (err && err != IGT_EXIT_SKIP && !was_killed) { > + igt_kill_children(SIGKILL); // if non-skip happen > + was_killed = true; > + } > + } > + > + count++; > + } > + > + num_test_multi_fork_children = 0; > + > + return err; > +} > + > static void igt_alarm_killchildren(int signal) > { > igt_info("Timed out waiting for children\n"); > @@ -2571,7 +2742,10 @@ void igt_waitchildren_timeout(int seconds, const char *reason) > > alarm(seconds); > > - ret = __igt_waitchildren(); > + if (num_test_multi_fork_children) > + ret = __igt_multi_wait(); > + else > + ret = __igt_waitchildren(); > igt_reset_timeout(); > if (ret) > igt_fail(ret); > @@ -2901,13 +3075,8 @@ void igt_vlog(const char *domain, enum igt_log_level level, const char *format, > program_name = command_str; > #endif > > - > - if (igt_thread_is_main()) { > - thread_id = strdup(""); > - } else { > - if (asprintf(&thread_id, "[thread:%d] ", gettid()) == -1) > - thread_id = NULL; > - } > + if (asprintf(&thread_id, "[thread:%d] ", gettid()) == -1) > + thread_id = NULL; > > if (!thread_id) > return; > diff --git a/lib/igt_core.h b/lib/igt_core.h > index b659ea7b..5d5593e0 100644 > --- a/lib/igt_core.h > +++ b/lib/igt_core.h > @@ -1114,6 +1114,27 @@ void igt_waitchildren(void); > void igt_waitchildren_timeout(int seconds, const char *reason); > void igt_kill_children(int signal); > > +bool __igt_multi_fork(void); > +/** > + * igt_multi_fork: > + * @child: name of the int variable with the child number > + * @num_children: number of children to fork > + * > + * This is a magic control flow block which spawns parallel processes > + * with fork() expecting there will runs without skips. > + * > + * The test children execute in parallel to the main test process. > + * Joining all test threads should be done with igt_waitchildren. > + * After multi_fork one can use igt_fork once to run more children. > + * > + * Like in igt_fork() any igt_skip() will cause test fail. > + */ > +#define igt_multi_fork(child, num_children) \ > + for (int child = 0; child < (num_children); child++) \ > + for (; __igt_multi_fork(); exit(0)) > + > +int __igt_multi_wait(void); > + > /** > * igt_helper_process: > * @running: indicates whether the process is currently running ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2022-12-07 10:31 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20221202205705.58879-1-kamil.konieczny@linux.intel.com>
2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 2/7] lib/igt_core: store GPU string or opened device name Kamil Konieczny
2022-12-07 10:32 ` Petri Latvala
2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_core: add prefix to logging Kamil Konieczny
2022-12-05 6:12 ` Mauro Carvalho Chehab
2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 4/7] lib/tests/igt_fork: add tests for igt_multi_fork Kamil Konieczny
2022-12-05 6:15 ` Mauro Carvalho Chehab
2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 6/7] tests/i915/gem_exec_gttfill: add new subtest multigpu-basic Kamil Konieczny
2022-12-05 6:28 ` Mauro Carvalho Chehab
2022-12-02 20:57 ` [igt-dev] [PATCH i-g-t 7/7] tests/i915/gem_close_race: add multiGPU subtests Kamil Konieczny
2022-12-05 6:30 ` Mauro Carvalho Chehab
2022-12-02 21:38 ` [igt-dev] ✗ Fi.CI.BAT: failure for Add few multi-GPU subtests with the help of igt_multi_fork macro Patchwork
2022-12-05 14:33 ` Kamil Konieczny
[not found] ` <20221202205705.58879-6-kamil.konieczny@linux.intel.com>
2022-12-05 6:10 ` [igt-dev] [PATCH i-g-t 5/7] tests/i915/gem_basic: add multigpu-create-close subtest Mauro Carvalho Chehab
[not found] ` <20221202205705.58879-2-kamil.konieczny@linux.intel.com>
2022-12-05 6:32 ` [igt-dev] [PATCH i-g-t 1/7] lib/igt_core: add igt_multi_fork for parallel tests Mauro Carvalho Chehab
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox