[igt-dev] [Intel-gfx] [PATCH i-g-t 1/2] i915/gem_eio: Check average reset times

Mika Kuoppala mika.kuoppala at linux.intel.com
Fri Feb 15 15:02:16 UTC 2019


Chris Wilson <chris at chris-wilson.co.uk> writes:

> Quoting Mika Kuoppala (2019-02-15 14:40:30)
>> Chris Wilson <chris at chris-wilson.co.uk> writes:
>> 
>> > As we have moved to rcu/srcu to serialise the resets, individual resets
>> > are subject to small variations in system grace periods. Allow for this
>> > by only expecting the median reset time to be within our target, thereby
>> > excluding noisy outliers from perturbing our results (but keep the
>> > maximum capped to prevent horrid failures!)
>> >
>> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
>> > ---
>> >  tests/i915/gem_eio.c | 53 ++++++++++++++++++++++++++++++++++----------
>> >  1 file changed, 41 insertions(+), 12 deletions(-)
>> >
>> > diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
>> > index 61054a07e..bd5266104 100644
>> > --- a/tests/i915/gem_eio.c
>> > +++ b/tests/i915/gem_eio.c
>> > @@ -42,6 +42,7 @@
>> >  
>> >  #include "igt.h"
>> >  #include "igt_device.h"
>> > +#include "igt_stats.h"
>> >  #include "igt_sysfs.h"
>> >  #include "sw_sync.h"
>> >  #include "i915/gem_ring.h"
>> > @@ -239,10 +240,9 @@ static void hang_after(int fd, unsigned int us, struct timespec *ts)
>> >       igt_assert_eq(timer_settime(ctx->timer, 0, &its, NULL), 0);
>> >  }
>> >  
>> > -static void check_wait(int fd, uint32_t bo, unsigned int wait)
>> > +static void check_wait(int fd, uint32_t bo, unsigned int wait, igt_stats_t *st)
>> >  {
>> >       struct timespec ts = {};
>> > -     uint64_t elapsed;
>> >  
>> >       if (wait) {
>> >               hang_after(fd, wait, &ts);
>> > @@ -253,10 +253,34 @@ static void check_wait(int fd, uint32_t bo, unsigned int wait)
>> >  
>> >       gem_sync(fd, bo);
>> >  
>> > -     elapsed = igt_nsec_elapsed(&ts);
>> > -     igt_assert_f(elapsed < 250e6,
>> > -                  "Wake up following reset+wedge took %.3fms\n",
>> > -                  elapsed*1e-6);
>> > +     if (st)
>> > +             igt_stats_push(st, igt_nsec_elapsed(&ts));
>> 
>> You prolly want igt_nsec_elapsed() primed regardless
>> of wait, otherwise I see -1 pushed polluting the stats.
>
> It is...
>
> if (wait)
> 	hang_after() sets ts start point
> else
> 	we set ts start point.

Indeed. It would have helped to read the
parameters for hang_after.

Reviewed-by: Mika Kuoppala <mika.kuoppala at linux.intel.com>


More information about the igt-dev mailing list