From: Thierry Reding <treding@nvidia.com>
To: "Christoph Hellwig" <hch@infradead.org>,
"Christian König" <christian.koenig@amd.com>,
"moderated list:DMA BUFFER SHARING FRAMEWORK"
<linaro-mm-sig@lists.linaro.org>,
"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
"amd-gfx list" <amd-gfx@lists.freedesktop.org>,
"Jerome Glisse" <jglisse@redhat.com>,
dri-devel <dri-devel@lists.freedesktop.org>,
"Dan Williams" <dan.j.williams@intel.com>,
"Logan Gunthorpe" <logang@deltatee.com>,
"open list:DMA BUFFER SHARING FRAMEWORK"
<linux-media@vger.kernel.org>
Subject: Re: [Linaro-mm-sig] [PATCH 4/8] dma-buf: add peer2peer flag
Date: Wed, 25 Apr 2018 09:56:43 +0200 [thread overview]
Message-ID: <20180425075643.GC2271@ulmo> (raw)
In-Reply-To: <20180425073039.GO25142@phenom.ffwll.local>
[-- Attachment #1: Type: text/plain, Size: 3063 bytes --]
On Wed, Apr 25, 2018 at 09:30:39AM +0200, Daniel Vetter wrote:
> On Wed, Apr 25, 2018 at 12:09:05AM -0700, Christoph Hellwig wrote:
> > On Wed, Apr 25, 2018 at 09:02:17AM +0200, Daniel Vetter wrote:
> > > Can we please not nack everything right away? Doesn't really motivate
> > > me to show you all the various things we're doing in gpu to make the
> > > dma layer work for us. That kind of noodling around in lower levels to
> > > get them to do what we want is absolutely par-for-course for gpu
> > > drivers. If you just nack everything I point you at for illustrative
> > > purposes, then I can't show you stuff anymore.
> >
> > No, it's not. No driver (and that includes the magic GPUs) has
> > any business messing with dma ops directly.
> >
> > A GPU driver imght have a very valid reason to disable the IOMMU,
> > but the code to do so needs to be at least in the arch code, maybe
> > in the dma-mapping/iommu code, not in the driver.
> >
> > As a first step to get the discussion started we'll simply need
> > to move the code Thierry wrote into a helper in arch/arm and that
> > alone would be a massive improvement. I'm not even talking about
> > minor details like actually using arm_get_dma_map_ops instead
> > of duplicating it.
> >
> > And doing this basic trivial work really helps to get this whole
> > mess under control.
>
> Ah ok. It did sound a bit like a much more cathegorical NAK than an "ack
> in principle, but we need to shuffle the implementation into the right
> place first". In the past we generally got a principled NAK on anything
> funny we've been doing with the dma api, and the dma api maintainer
> steaming off telling us we're incompetent idiots. I guess I've been
> branded a bit on this topic :-/
>
> Really great that this is changing now.
>
> On the patch itself: It might not be the right thing in all cases, since
> for certain compression formats the nv gpu wants larger pages (easy to
> allocate from vram, not so easy from main memory), so might need the iommu
> still. But currently that's not implemented:
>
> https://www.spinics.net/lists/dri-devel/msg173932.html
To clarify: we do want to use the IOMMU, but we want to use it
explicitly via the IOMMU API rather than hiding it behind the DMA API.
We do the same thing in Tegra DRM where we don't want to use the DMA API
because it doesn't allow us to share the same mapping between multiple
display controllers in the same way the IOMMU API does. We've also been
thinking about using the IOMMU API directly in order to support process
isolation for devices that accept command streams from userspace.
Fortunately the issue I'm seeing with Nouveau doesn't happen with Tegra
DRM, which seems to be because we have an IOMMU group with multiple
devices and that prevents the DMA API from "hijacking" the IOMMU domain
for the group.
And to add to the confusion, none of this seems to be an issue on 64-bit
ARM where the generic DMA/IOMMU code from drivers/iommu/dma-iommu.c is
used.
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2018-04-25 7:56 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-25 10:59 [PATCH 1/8] lib/scatterlist: add sg_set_dma_addr() helper Christian König
2018-03-25 10:59 ` [PATCH 2/8] PCI: Add pci_find_common_upstream_dev() Christian König
2018-03-28 12:38 ` Christoph Hellwig
2018-03-28 15:07 ` Christian König
2018-03-28 15:47 ` Logan Gunthorpe
2018-03-28 16:02 ` Christian König
2018-03-28 16:25 ` Logan Gunthorpe
2018-03-28 18:28 ` Christian König
2018-03-28 18:57 ` Logan Gunthorpe
2018-03-28 19:44 ` Christian König
2018-03-28 19:53 ` Logan Gunthorpe
2018-03-29 11:44 ` Christian König
2018-03-29 15:45 ` Logan Gunthorpe
2018-03-29 16:10 ` Christian König
2018-03-29 16:25 ` Logan Gunthorpe
2018-03-29 18:15 ` Christian König
2018-03-30 1:58 ` Jerome Glisse
2018-03-30 6:33 ` Christoph Hellwig
2018-03-30 15:25 ` Jerome Glisse
2018-03-30 18:46 ` Logan Gunthorpe
2018-03-30 19:45 ` Jerome Glisse
2018-04-02 17:02 ` Logan Gunthorpe
2018-04-02 17:20 ` Jerome Glisse
2018-04-02 17:37 ` Logan Gunthorpe
2018-04-02 19:16 ` Jerome Glisse
2018-04-02 19:32 ` Logan Gunthorpe
2018-04-02 19:45 ` Jerome Glisse
[not found] ` <CADnq5_P-z=Noos_jaME9_CERri3C-m2hPPvx2bArr36O=1FnrA@mail.gmail.com>
2018-03-29 14:37 ` Alex Deucher
2018-03-25 10:59 ` [PATCH 3/8] PCI: Add pci_peer_traffic_supported() Christian König
2018-03-25 10:59 ` [PATCH 4/8] dma-buf: add peer2peer flag Christian König
2018-03-29 6:57 ` Daniel Vetter
2018-03-29 11:34 ` Christian König
2018-04-03 9:09 ` Daniel Vetter
2018-04-03 17:06 ` Jerome Glisse
2018-04-03 18:08 ` Daniel Vetter
2018-04-16 12:39 ` Christoph Hellwig
2018-04-16 13:38 ` Daniel Vetter
2018-04-19 8:16 ` Christoph Hellwig
2018-04-20 7:13 ` Daniel Vetter
2018-04-20 8:58 ` Christian König
2018-04-20 10:17 ` Christoph Hellwig
2018-04-20 10:44 ` Christian König
2018-04-20 12:46 ` Christoph Hellwig
2018-04-20 15:21 ` [Linaro-mm-sig] " Daniel Vetter
2018-04-24 18:48 ` Christoph Hellwig
2018-04-24 19:32 ` Daniel Vetter
2018-04-25 5:48 ` Christoph Hellwig
2018-04-25 6:10 ` Alex Deucher
2018-04-25 6:13 ` Daniel Vetter
2018-04-25 6:23 ` Daniel Vetter
2018-04-25 6:43 ` Christoph Hellwig
2018-04-25 7:02 ` Daniel Vetter
2018-04-25 7:09 ` Christoph Hellwig
2018-04-25 7:30 ` Daniel Vetter
2018-04-25 7:56 ` Thierry Reding [this message]
2018-04-25 8:55 ` Christoph Hellwig
2018-04-25 7:43 ` Thierry Reding
2018-04-25 7:41 ` Thierry Reding
2018-04-25 8:54 ` noveau vs arm dma ops Christoph Hellwig
2018-04-25 9:25 ` Russell King - ARM Linux
2018-04-25 10:04 ` Daniel Vetter
2018-04-25 15:33 ` Christoph Hellwig
2018-04-25 21:35 ` Daniel Vetter
2018-04-25 23:26 ` Russell King - ARM Linux
2018-04-26 9:17 ` Daniel Vetter
2018-04-26 9:09 ` Christoph Hellwig
2018-04-26 9:45 ` Daniel Vetter
2018-04-26 11:12 ` Russell King - ARM Linux
2018-04-25 22:54 ` Russell King - ARM Linux
2018-04-26 9:13 ` Christoph Hellwig
2018-04-26 9:20 ` [Linaro-mm-sig] " Daniel Vetter
2018-04-26 9:24 ` Christoph Hellwig
2018-04-26 9:39 ` Daniel Vetter
2018-04-25 6:24 ` [Linaro-mm-sig] [PATCH 4/8] dma-buf: add peer2peer flag Alex Deucher
2018-04-25 6:41 ` Christoph Hellwig
2018-04-25 17:44 ` Alex Deucher
2018-04-25 18:38 ` Dan Williams
2018-05-04 12:45 ` Lucas Stach
2018-03-25 10:59 ` [PATCH 5/8] drm/amdgpu: print DMA-buf status in debugfs Christian König
2018-03-25 10:59 ` [PATCH 6/8] drm/amdgpu: note that we can handle peer2peer DMA-buf Christian König
2018-03-25 10:59 ` [PATCH 7/8] drm/amdgpu: add amdgpu_gem_attach Christian König
2018-03-25 11:00 ` [PATCH 8/8] drm/amdgpu: add support for exporting VRAM using DMA-buf Christian König
2018-03-28 12:37 ` [PATCH 1/8] lib/scatterlist: add sg_set_dma_addr() helper Christoph Hellwig
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=20180425075643.GC2271@ulmo \
--to=treding@nvidia.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=christian.koenig@amd.com \
--cc=dan.j.williams@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=hch@infradead.org \
--cc=jglisse@redhat.com \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=logang@deltatee.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).