[Intel-gfx] [PATCH igt] gem_concurrent_blit: Don't call igt_require() outside of a subtest/fixture

Chris Wilson chris at chris-wilson.co.uk
Mon Jan 11 00:52:24 PST 2016


On Mon, Jan 11, 2016 at 09:00:13AM +0100, Daniel Vetter wrote:
> On Fri, Jan 08, 2016 at 09:10:38AM +0000, Chris Wilson wrote:
> > gem_concurrent_blit tries to ensure that it doesn't try and run a test
> > that would grind the system to a halt, i.e. unexpectedly cause swap
> > thrashing. It currently calls intel_require_memory(), but outside of
> > the subtest (as the tests use fork, it cannot do requirement testing
> > within the test children) - but intel_require_memory() calls
> > igt_require() and triggers and abort. Wrapping that initial require
> > within an igt_fixture() stops the abort(), but also prevents any further
> > testing.
> > 
> > This patch restructures the requirement checking to ordinary conditions,
> > which though allowing the test to run, also prevents listing of subtests
> > on machines which cannot handle them.
> 
> 
> > ---
> >  lib/igt_aux.h              |  2 ++
> >  lib/intel_os.c             | 53 +++++++++++++++++++++++-------------
> >  tests/gem_concurrent_all.c | 67 +++++++++++++++++++++++++++++++++-------------
> >  3 files changed, 85 insertions(+), 37 deletions(-)
> > 
> > diff --git a/lib/igt_aux.h b/lib/igt_aux.h
> > index 6e11ee6..5a88c2a 100644
> > --- a/lib/igt_aux.h
> > +++ b/lib/igt_aux.h
> > @@ -88,6 +88,8 @@ uint64_t intel_get_total_swap_mb(void);
> >  
> >  #define CHECK_RAM 0x1
> >  #define CHECK_SWAP 0x2
> > +int __intel_check_memory(uint32_t count, uint64_t size, unsigned mode,
> > +			 uint64_t *out_required, uint64_t *out_total);
> >  void intel_require_memory(uint32_t count, uint64_t size, unsigned mode);
> >  int intel_num_objects_for_memory(uint32_t size, unsigned mode);
> >  
> > diff --git a/lib/intel_os.c b/lib/intel_os.c
> > index dba9e17..90f9bb3 100644
> > --- a/lib/intel_os.c
> > +++ b/lib/intel_os.c
> > @@ -192,6 +192,38 @@ intel_get_total_swap_mb(void)
> >  	return retval / (1024*1024);
> >  }
> >  
> 
> Please add the usual gtkdoc boilerplate here with a mention of
> intel_check_memory. Ack with that.

You were meant to object about how this breaks test runners and suggest
how we can do this without that breakage.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list