[igt-dev] [RFT i-g-t] lib/i915: Assert mmap size alignment

Chris Wilson chris at chris-wilson.co.uk
Tue Mar 5 08:38:51 UTC 2019


Quoting Tvrtko Ursulin (2019-03-05 07:55:43)
> 
> On 04/03/2019 14:45, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2019-03-04 14:11:31)
> >> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> >>
> >> Fishing for fails...
> >>
> >> /*
> >> mmap(2) mandates size is page aligned so check this in our wrappers.
> >> */
> >>
> >> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> >> ---
> >>   lib/i915/gem_mman.c |  4 ++++
> >>   lib/igt_fb.c        | 14 ++++++++------
> >>   tests/kms_ccs.c     | 14 ++++++++------
> >>   tests/kms_psr.c     |  8 ++++----
> >>   4 files changed, 24 insertions(+), 16 deletions(-)
> >>
> >> diff --git a/lib/i915/gem_mman.c b/lib/i915/gem_mman.c
> >> index 3cf9a6bbdb31..084dbb3b3678 100644
> >> --- a/lib/i915/gem_mman.c
> >> +++ b/lib/i915/gem_mman.c
> >> @@ -57,6 +57,8 @@ void *__gem_mmap__gtt(int fd, uint32_t handle, uint64_t size, unsigned prot)
> >>          struct drm_i915_gem_mmap_gtt mmap_arg;
> >>          void *ptr;
> >>   
> >> +       igt_assert(!(size & 4095));
> > 
> > Fwiw, it's probably best if we had some kind of IGT_BUG_ON() that caused
> > a much more visible explosion than a mere test failure.
> > 
> > #define IGT_BUG_ON(cond) if (!(cond)) raise(SIGILL)
> 
> No idea if that would be worthwhile.
> 
> But anyway, it seems I have identified all the tests which do 
> non-page-aligned mmap. So..
> 
> a) leave the assert in low level mmap helpers
> b) move the assert to higher level wrappers
> c) round up in wrappers is not an option due unmap
> d) do nothing in igt

Imo leave the wrappers alone, fix the bugs in the callers, fume that it
didn't explode earlier.
-Chris


More information about the igt-dev mailing list