All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	dri-devel@lists.freedesktop.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: Re: [PATCH v2] drm/gem: Fix mmap fake offset handling for drm_gem_object_funcs.mmap
Date: Wed, 13 Nov 2019 08:39:02 +0100	[thread overview]
Message-ID: <20191113073902.343vfunbjuzy725y@sirius.home.kraxel.org> (raw)
In-Reply-To: <20191112144435.GK23790@phenom.ffwll.local>

  Hi,

> > > >> VRAM helpers use drm_gem_ttm_mmap(), which wraps ttm_bo_mmap_obj().
> > > >> These changes should be transparent.
> > > > 
> > > > There's still the issue that for dma-buf mmap vs drm mmap you use
> > > > different f_mapping, which means ttm's pte shootdown won't work correctly
> > > > for dma-buf mmaps. But yeah normal operation for ttm/vram helpers should
> > > > be fine.
> > > 
> > > VRAM helpers don't support dmabufs.
> > 
> > It's not that simple.  Even when not supporting dma-buf export and
> > import it is still possible to create dma-bufs, import them into the
> > same driver (which doesn't actually export+import but just grabs a gem
> > object reference instead) and also to mmap them via prime/dma-buf code
> > path ...

... but after looking again I think we are all green here.  Given that
only self-import works we'll only see vram gem objects in the mmap code
path, which should have everything set up correctly.  Same goes for qxl.

All other ttm drivers still use the old mmap code path, so all green
there too I think.  Also I somehow doubt dma-buf mmap vs. drm mmap ends
up using different f_mapping, ttm code has a WARN_ON in ttm_bo_vm_open()
which would fire should that be the case.

Do imported dma-bufs hit the drm mmap code path in the first place?
Wouldn't mmap be handled by the exporting driver?

> > Can ttm use the same trick msm uses?  Now that ttm bo's are a gem object
> > superclass I think we should be able to switch vma->vm_file to
> > bo->base.filp, simliar to msm_gem_mmap_obj(), probably best done in
> > drm_gem_ttm_mmap().
> 
> bo->base.filp is the shmem inode file, and I'm not too sure how much shmem
> approves of us misappropriating the mapping. For shmem only objects it
> probably doesn't matter (since both gem mmaps and shmem mmaps will point
> at the same underlying struct page), but for vram/ttm/anything else the
> gem mmap might point into iomem, and shmem then might go boom trying to do
> stuff with that.

Yes, agreeing here after wading through the code ...

> I think having our own mapping would be the cleanest
> long-term approach ...

You mean using per drm object (instead of per drm device) address spaces?

cheers,
  Gerd

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2019-11-13  7:39 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-24 19:18 [PATCH v2] drm/gem: Fix mmap fake offset handling for drm_gem_object_funcs.mmap Rob Herring
2019-10-25  5:34 ` Gerd Hoffmann
2019-10-25  7:30 ` Daniel Vetter
2019-11-08 16:27   ` Daniel Vetter
2019-11-08 16:55     ` Daniel Vetter
2019-11-12  8:52       ` Gerd Hoffmann
2019-11-12  9:35         ` Daniel Vetter
2019-11-12 15:37           ` Rob Herring
2019-11-12 19:06             ` Daniel Vetter
2019-11-12 21:31               ` Rob Herring
2019-11-12 22:14                 ` Daniel Vetter
2019-11-13  7:53                   ` Gerd Hoffmann
2019-11-12  9:26     ` Thomas Zimmermann
2019-11-12  9:32       ` Daniel Vetter
2019-11-12  9:49         ` Thomas Zimmermann
2019-11-12 10:38           ` Gerd Hoffmann
2019-11-12 14:44             ` Daniel Vetter
2019-11-13  7:39               ` Gerd Hoffmann [this message]
2019-11-13  8:17                 ` Daniel Vetter
2019-11-13 13:51                   ` Gerd Hoffmann
2019-11-13 16:27                     ` Daniel Vetter
2019-11-15  9:37                       ` Gerd Hoffmann
2019-11-15 10:18                         ` Daniel Vetter
2019-11-15 10:56                           ` Gerd Hoffmann
2019-11-15 15:31                             ` Daniel Vetter
2019-11-18 10:40                               ` Gerd Hoffmann
2019-11-18 16:49                                 ` Daniel Vetter
2019-11-20  8:05                                   ` Gerd Hoffmann
2019-11-20 10:39                                     ` Daniel Vetter
2019-11-20 11:40                                       ` Gerd Hoffmann
2019-11-20 12:04                                         ` Daniel Vetter
2019-11-20 12:18                                           ` Gerd Hoffmann
2019-11-20 12:34                                             ` Daniel Vetter
2019-11-20 13:08                                               ` Gerd Hoffmann
2019-11-20 13:40                                                 ` Daniel Vetter
2019-11-21  8:10                                                   ` Gerd Hoffmann
2019-11-21  8:47                                                     ` Daniel Vetter
2019-11-21  8:02                                   ` Gerd Hoffmann
2019-11-21  8:49                                     ` Daniel Vetter
2019-11-21 10:18                                       ` Gerd Hoffmann
2019-11-21 10:36                                         ` Daniel Vetter
2019-11-13 13:53                   ` Rob Herring
2019-11-13 16:28                     ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191113073902.343vfunbjuzy725y@sirius.home.kraxel.org \
    --to=kraxel@redhat.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.