[igt-dev] [Intel-gfx] [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices!

Chris Wilson chris at chris-wilson.co.uk
Wed Jan 30 14:18:53 UTC 2019


Quoting Mika Kuoppala (2019-01-30 14:13:57)
> Chris Wilson <chris at chris-wilson.co.uk> writes:
> 
> > Actually measure how many batches we can fit into a ring before
> > blocking, or else we may end up hanging the device earlier than
> > expected!
> >
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > Cc: Mika Kuoppala <mika.kuoppala at intel.com>
> > ---
> >  tests/i915/gem_eio.c | 19 +++++++++++++++----
> >  1 file changed, 15 insertions(+), 4 deletions(-)
> >
> > diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
> > index 09059c311..534bd1899 100644
> > --- a/tests/i915/gem_eio.c
> > +++ b/tests/i915/gem_eio.c
> > @@ -44,6 +44,7 @@
> >  #include "igt_device.h"
> >  #include "igt_sysfs.h"
> >  #include "sw_sync.h"
> > +#include "i915/gem_ring.h"
> >  
> >  IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
> >  
> > @@ -358,10 +359,15 @@ static void test_inflight(int fd, unsigned int wait)
> >  {
> >       int parent_fd = fd;
> >       unsigned int engine;
> > +     int max;
> >  
> >       igt_require_gem(fd);
> >       igt_require(gem_has_exec_fence(fd));
> >  
> > +     max = gem_measure_ring_inflight(fd, -1, 0);
> > +     igt_require(max > 1);
> > +     max = min(max - 1, 64);
> > +
> >       for_each_engine(parent_fd, engine) {
> >               const uint32_t bbe = MI_BATCH_BUFFER_END;
> >               struct drm_i915_gem_exec_object2 obj[2];
> > @@ -389,7 +395,7 @@ static void test_inflight(int fd, unsigned int wait)
> >               execbuf.buffer_count = 2;
> >               execbuf.flags = engine | I915_EXEC_FENCE_OUT;
> >  
> > -             for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> 
> Move the fence array to upper scope and use that in finding the
> max. As bonus you can remove the comment on 'conservative estimate of
> ring size' as apparently we weren't so convervative after all.
> 
> 
> Bugzilla ref or how did you noticed this? much hairpulling
> potential this has.

Just recent changes to bsw. I think there's a bugzilla for it, but will
have to trawl. It's just solitary failure; the device is reset before
the next igt (just not subtest).
-Chris


More information about the igt-dev mailing list