[PATCH] tests/intel/xe_create: Remove the elapsed time validation
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Mon Aug 5 07:12:50 UTC 2024
On Fri, Aug 02, 2024 at 02:43:09PM +0530, Vivekanandan, Balasubramani wrote:
> On 02.08.2024 07:12, Zbigniew Kempczyński wrote:
> > On Thu, Aug 01, 2024 at 06:03:12PM +0530, Balasubramani Vivekanandan wrote:
> > > Time check used is incorrect. Time limit used for validation is
> > > arbitrarily chosen as 5 seconds with no real resoning behind it.
> > > With different execution environments taking different execution times,
> > > limit can't be fixed and leads to unnecessary hacks.
> > > So remove this time check completely.
> >
> > MAXTIME picked in the past was chosen as a fraction of created/destroyed
> > exec queues in some (safe) time period. Up to relatively small number
> > of exec queues (up to 512) there was no issue observed. But with larger
> > number of exec queues we noticed kernel lockup (iirc guc related).
>
> Time limit of 5 seconds is not fitting all platforms and execution
> environments. I would like to avoid hacks to workaround those.
> We can validate the test case by ensuring there were no GPU hangs or wait
> timeouts instead of checking the time taken.
> Measuring the time is more a performance validation rather than
> functionality validation. Better to isolate performance tests from
> functionality tests.
>
> >
> > I think keeping some time regime for those operations is good idea, we
> > may notice performance / stability drop if something unexpected will
> > happen in kmd/guc. MAXTIME/MAXEXECQUEUES were chosen as safe values
> > which should be easily handled. If you're removing this check you may
> > delete subtest as well.
>
> Keeping subtest without time check will ensure the use case works fine
> without causing GPU hangs, kernel lockups or even dmesg warnings.
Agree, you've conviced me. Pick my r-b:
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
--
Zbigniew
>
> Regards,
> Bala
>
> >
> > --
> > Zbigniew
> >
> > >
> > > Signed-off-by: Balasubramani Vivekanandan <balasubramani.vivekanandan at intel.com>
> > > ---
> > > tests/intel/xe_create.c | 17 +----------------
> > > 1 file changed, 1 insertion(+), 16 deletions(-)
> > >
> > > diff --git a/tests/intel/xe_create.c b/tests/intel/xe_create.c
> > > index 76ffdcef2..80de07789 100644
> > > --- a/tests/intel/xe_create.c
> > > +++ b/tests/intel/xe_create.c
> > > @@ -157,7 +157,6 @@ enum vm_count {
> > > };
> > >
> > > #define MAXEXECQUEUES 2048
> > > -#define MAXTIME 5
> > >
> > > /**
> > > * SUBTEST: create-execqueues-%s
> > > @@ -175,10 +174,8 @@ enum vm_count {
> > > static void create_execqueues(int fd, enum exec_queue_destroy ed,
> > > enum vm_count vc)
> > > {
> > > - struct timespec tv = { };
> > > uint32_t num_engines, exec_queues_per_process, vm;
> > > - int nproc = sysconf(_SC_NPROCESSORS_ONLN), seconds;
> > > - int real_timeout = MAXTIME * (vc == SHARED ? 4 : 1);
> > > + int nproc = sysconf(_SC_NPROCESSORS_ONLN);
> > >
> > > if (vc == SHARED) {
> > > fd = drm_reopen_driver(fd);
> > > @@ -189,8 +186,6 @@ static void create_execqueues(int fd, enum exec_queue_destroy ed,
> > > exec_queues_per_process = max_t(uint32_t, 1, MAXEXECQUEUES / nproc);
> > > igt_debug("nproc: %u, exec_queues per process: %u\n", nproc, exec_queues_per_process);
> > >
> > > - igt_nsec_elapsed(&tv);
> > > -
> > > igt_fork(n, nproc) {
> > > struct drm_xe_engine *engine;
> > > uint32_t exec_queue, exec_queues[exec_queues_per_process];
> > > @@ -236,16 +231,6 @@ static void create_execqueues(int fd, enum exec_queue_destroy ed,
> > > xe_vm_destroy(fd, vm);
> > > drm_close_driver(fd);
> > > }
> > > -
> > > - seconds = igt_seconds_elapsed(&tv);
> > > - if (seconds > real_timeout) {
> > > - if (igt_run_in_simulation())
> > > - igt_info("Creating %d exec_queues took too long: %d [limit: %d] seconds\n",
> > > - MAXEXECQUEUES, seconds, real_timeout);
> > > - else
> > > - igt_assert_f(false, "Creating %d exec_queues took too long: %d [limit: %d] seconds\n",
> > > - MAXEXECQUEUES, seconds, real_timeout);
> > > - }
> > > }
> > >
> > > /**
> > > --
> > > 2.34.1
> > >
More information about the igt-dev
mailing list