[PATCH i-g-t v14 4/5] tests/intel/xe_exec_basic: add multigpu subtests

Janusz Krzysztofik janusz.krzysztofik at linux.intel.com
Wed Mar 20 19:49:58 UTC 2024


Hi Kamil,

On Wednesday, 20 March 2024 16:56:58 CET Kamil Konieczny wrote:
> Add a few multi-gpu subtests:
> 
> multigpu-once-*
> multigpu-many-execqueues-many-vm-*
> multigpu-no-exec-*
> 
> run on two or more GPUs. Many variant was limited to take at most
> few seconds.
> 
> v10: use new renamed macro multi_fork_foreach_gpu_chip (Zbigniew)
> v13: use igt_multi_fork_foreach_gpu (Janusz)
> 
> Cc: "Dominik Karol Piątkowski" <dominik.karol.piatkowski at intel.com>
> Cc: "Zbigniew Kempczyński" <zbigniew.kempczynski at intel.com>
> Cc: Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com>
> Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>

The code looks good to me, however, since I'm not quite on track with Xe and 
multi-GPU, I can't tell if such tests are what is needed, then instead of R-b:

Acked-by: Janusz Krzysztofik <janusz.krzysztofik at linux.intel.com>

> ---
>  tests/intel/xe_exec_basic.c | 36 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/tests/intel/xe_exec_basic.c b/tests/intel/xe_exec_basic.c
> index e6f8db5b0..f0230a9ca 100644
> --- a/tests/intel/xe_exec_basic.c
> +++ b/tests/intel/xe_exec_basic.c
> @@ -11,6 +11,7 @@
>   */
>  
>  #include "igt.h"
> +#include "igt_multigpu.h"
>  #include "lib/igt_syncobj.h"
>  #include "lib/intel_reg.h"
>  #include "xe_drm.h"
> @@ -54,6 +55,18 @@
>   * Description: Run no-exec %arg[1] test
>   * Test category: functionality test
>   *
> + * SUBTEST: multigpu-once-%s
> + * Description: Run %arg[1] test only once on multiGPU
> + * Test category: functionality test
> + *
> + * SUBTEST: multigpu-many-execqueues-many-vm-%s
> + * Description: Run %arg[1] test on many exec_queues and many VMs on multiGPU
> + * Test category: stress test
> + *
> + * SUBTEST: multigpu-no-exec-%s
> + * Description: Run no-exec %arg[1] test on multiGPU
> + * Test category: functionality test
> + *
>   * arg[1]:
>   *
>   * @basic:				basic
> @@ -368,4 +381,27 @@ igt_main
>  
>  	igt_fixture
>  		drm_close_driver(fd);
> +
> +	for (const struct section *s = sections; s->name; s++) {
> +		igt_subtest_f("multigpu-once-%s", s->name) {
> +			igt_multi_fork_foreach_multigpu(gpu_fd, gpu_idx, DRIVER_XE)
> +				xe_for_each_engine(gpu_fd, hwe)
> +					test_exec(gpu_fd, hwe, 1, 1, 1, s->flags);
> +			igt_waitchildren();
> +		}
> +
> +		igt_subtest_f("multigpu-many-execqueues-many-vm-%s", s->name) {
> +			igt_multi_fork_foreach_multigpu(gpu_fd, gpu_idx, DRIVER_XE)
> +				xe_for_each_engine(gpu_fd, hwe)
> +					test_exec(gpu_fd, hwe, 16, 32, 16, s->flags);
> +			igt_waitchildren();
> +		}
> +
> +		igt_subtest_f("multigpu-no-exec-%s", s->name) {
> +			igt_multi_fork_foreach_multigpu(gpu_fd, gpu_idx, DRIVER_XE)
> +				xe_for_each_engine(gpu_fd, hwe)
> +					test_exec(gpu_fd, hwe, 1, 0, 1, s->flags);
> +			igt_waitchildren();
> +		}
> +	}
>  }
> 






More information about the igt-dev mailing list