[igt-dev] [Intel-gfx] [RFC PATCH i-g-t] tests/prime_vgem: Skip MMAP_GTT based subtests if no mappable GGTT

Janusz Krzysztofik janusz.krzysztofik at linux.intel.com
Thu Nov 28 08:38:21 UTC 2019


Hi Chris,

On Tuesday, November 26, 2019 3:34:13 PM CET Chris Wilson wrote:
> Quoting Janusz Krzysztofik (2019-11-26 14:25:48)
> > As we've agreed that using GEM_MMAP* IOCTLs on dma-buf objects without
> > a CPU accessible GART is very questionable, we are probably not going
> > to extend our MMAP_OFFSET handler with an extra processing path
> > required for it to work correctly on dma-buf objects.  As a
> > consequence, on future hardware with no mappable aperture we won't be
> > able to use MMAP_OFFSET as a replacement of MMAP_GTT in tests which
> > examine PRIME import interface.  When running on that kind of hardware,
> > just skip subtests which depend on gem_mmap__gtt().
> > 
> > Cc: Daniel Vetter <daniel at ffwll.ch>
> > Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> > ---
> >  tests/prime_vgem.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c
> > index 04cc913d..b92cf4f7 100644
> > --- a/tests/prime_vgem.c
> > +++ b/tests/prime_vgem.c
> > @@ -126,6 +126,8 @@ static void test_fence_mmap(int i915, int vgem)
> >         int dmabuf, i;
> >         int master[2], slave[2];
> >  
> > +       gem_require_mappable_ggtt(i915);
> > +
> >         igt_assert(pipe(master) == 0);
> >         igt_assert(pipe(slave) == 0);
> >  
> > @@ -210,6 +212,8 @@ static void test_gtt(int vgem, int i915)
> >         uint32_t *ptr;
> >         int dmabuf, i;
> >  
> > +       gem_require_mappable_ggtt(i915);
> > +
> >         scratch.width = 1024;
> >         scratch.height = 1024;
> >         scratch.bpp = 32;
> > @@ -285,6 +289,7 @@ static void test_gtt_interleaved(int vgem, int i915)
> >         uint32_t *ptr, *gtt;
> >         int dmabuf, i;
> >  
> > +       gem_require_mappable_ggtt(i915);
> >         igt_require(is_coherent(i915));
> 
> Ok, but these (fence_mmap, gtt_interleaved) want WC coherency as an 
alternative.
> test_gtt probably wants a basic test_wc alternative.

I've been thinking about that and my conclusion is that with no mappable 
aperture on board, it's no longer possible to access the imported object data, 
or at least arrange for such access, using i915 KMD interface, unless we 
extend the upcoming MMAP_OFFSET with a redirection to dma-buf interface.  
Based on some comments from Joonas and Daniel I received in response to my 
attempts to add such support, I'm assuming we are not going to do that.

Without that, the only possibility I can see for userspace to access those 
data is to use mmap on the dma-buf file descriptor directly, completely 
bypassing i915 and its PRIME import function.

Then, assuming the prime_vgem test is about testing just the PRIME import 
function of a driver, we have no alternative to MMAP_GTT to test here, I 
believe, unless we are going to test dma-buf interface over vgem driver PRIME 
export function, not the i915 KMD ABI.  Just skipping the tests that require 
unsupported i915 functionality (mappable aperture) seems a reasonable approach 
to me.

Thanks,
Janusz


> -Chris
> 






More information about the igt-dev mailing list