[Intel-gfx] [PATCH] drm/i915: Document that mmap forwarding is discouraged

Daniel Vetter daniel at ffwll.ch
Sun Oct 19 16:52:52 CEST 2014


On Thu, Oct 16, 2014 at 01:48:20PM +0300, Jani Nikula wrote:
> On Thu, 16 Oct 2014, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> > Too many new drm driver writers seem to look at i915 for inspiration.
> > But we have two ways to do mmap, so discourage readers from the old,
> > ugly version. In a new driver we'd just expose two mmap offsets per
> > object, one for the gtt map and the other for the cpu map.
> >
> > Cc: "Cheng, Yao" <yao.cheng at intel.com>
> > Cc: David Herrmann <dh.herrmann at gmail.com>
> > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> > ---
> >  drivers/gpu/drm/i915/i915_gem.c | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> > index e9c783d55612..09d859b89aac 100644
> > --- a/drivers/gpu/drm/i915/i915_gem.c
> > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > @@ -1466,6 +1466,15 @@ unlock:
> >   *
> >   * While the mapping holds a reference on the contents of the object, it doesn't
> >   * imply a ref on the object itself.
> > + *
> > + * IMPORTANT:
> > + *
> > + * DRM driver writers who look a this function as an example for how to do GEM
> > + * mmap support, please don't implement mmap support like here. The modern way
> > + * to implement DRM mmap support is with an mmap offset ioctl (like
> > + * i915_gem_mmap_gtt) and then using the mmap syscall on the DRM fd directly.
> > + * That way debug tooling like valgrind will understand what's going on, hiding
> > + * the mmap call in a driver private ioctl will break that.
> 
> Maybe a sentence here about why we're doing things differently, instead
> of merely "do as I say, don't do as I do"? It smells like hysterical
> raisins, but no harm in spelling it out, right?

Ok, I'll add a "The i915 only does mmap this way because we didn't know
better".
-Daniel

> 
> BR,
> Jani.
> 
> >   */
> >  int
> >  i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
> > -- 
> > 1.9.3
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Jani Nikula, Intel Open Source Technology Center

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list