linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: linux-arm-kernel@lists.infradead.org,
	Rob Clark <robdclark@gmail.com>,
	Sumit Semwal <sumit.semwal@linaro.org>,
	LKML <linux-kernel@vger.kernel.org>,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
	DRI mailing list <dri-devel@lists.freedesktop.org>,
	Linaro MM SIG Mailman List <linaro-mm-sig@lists.linaro.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Linaro Kernel Mailman List <linaro-kernel@lists.linaro.org>,
	Tomasz Stanislawski <stanislawski.tomasz@googlemail.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Daniel Vetter <daniel@ffwll.ch>
Subject: Re: [RFCv3 2/2] dma-buf: add helpers for sharing attacher constraints with dma-parms
Date: Tue, 03 Feb 2015 15:52:48 +0100	[thread overview]
Message-ID: <4830208.H6zxrGlT1D@wuerfel> (raw)
In-Reply-To: <20150203144109.GR8656@n2100.arm.linux.org.uk>

On Tuesday 03 February 2015 14:41:09 Russell King - ARM Linux wrote:
> On Tue, Feb 03, 2015 at 03:17:27PM +0100, Arnd Bergmann wrote:
> > On Tuesday 03 February 2015 09:04:03 Rob Clark wrote:
> > > Since I'm stuck w/ an iommu, instead of built in mmu, my plan was to
> > > drop use of dma-mapping entirely (incl the current call to dma_map_sg,
> > > which I just need until we can use drm_cflush on arm), and
> > > attach/detach iommu domains directly to implement context switches.
> > > At that point, dma_addr_t really has no sensible meaning for me.
> > 
> > I think what you see here is a quite common hardware setup and we really
> > lack the right abstraction for it at the moment. Everybody seems to
> > work around it with a mix of the dma-mapping API and the iommu API.
> > These are doing different things, and even though the dma-mapping API
> > can be implemented on top of the iommu API, they are not really compatible.
> 
> I'd go as far as saying that the "DMA API on top of IOMMU" is more
> intended to be for a system IOMMU for the bus in question, rather
> than a device-level IOMMU.
> 
> If an IOMMU is part of a device, then the device should handle it
> (maybe via an abstraction) and not via the DMA API.  The DMA API should
> be handing the bus addresses to the device driver which the device's
> IOMMU would need to generate.  (In other words, in this circumstance,
> the DMA API shouldn't give you the device internal address.)

Exactly. And the abstraction that people choose at the moment is the
iommu API, for better or worse. It makes a lot of sense to use this
API if the same iommu is used for other devices as well (which is
the case on Tegra and probably a lot of others). Unfortunately the
iommu API lacks support for cache management, and probably other things
as well, because this was not an issue for the original use case
(device assignment on KVM/x86).

This could be done by adding explicit or implied cache management
to the IOMMU mapping interfaces, or by extending the dma-mapping
interfaces in a way that covers the use case of the device managing
its own address space, in addition to the existing coherent and
streaming interfaces.

	Arnd

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2015-02-03 14:53 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-27  8:25 [RFCv3 1/2] device: add dma_params->max_segment_count Sumit Semwal
2015-01-27  8:25 ` [RFCv3 2/2] dma-buf: add helpers for sharing attacher constraints with dma-parms Sumit Semwal
2015-01-29 14:16   ` Maarten Lankhorst
2015-01-29 14:39   ` Russell King - ARM Linux
2015-01-29 15:30     ` Sumit Semwal
2015-01-29 15:47       ` Russell King - ARM Linux
2015-01-29 16:55         ` Sumit Semwal
2015-01-29 18:52         ` Rob Clark
2015-01-29 19:26           ` Russell King - ARM Linux
2015-01-29 22:18             ` Rob Clark
2015-01-29 22:31               ` Russell King - ARM Linux
2015-01-29 23:19                 ` Rob Clark
2015-02-02 16:54               ` Daniel Vetter
2015-02-02 20:30                 ` Rob Clark
2015-02-02 21:46                   ` Russell King - ARM Linux
2015-02-02 22:36                     ` Rob Clark
2015-02-03  7:50                       ` Daniel Vetter
2015-02-03  7:46                     ` Daniel Vetter
2015-02-03  7:48                   ` Daniel Vetter
2015-02-03 12:28                     ` Russell King - ARM Linux
2015-02-03 13:00                       ` Daniel Vetter
2015-02-03 13:28                       ` Christian Gmeiner
2015-02-03 14:32                         ` Russell King - ARM Linux
2015-02-03 14:25                       ` Rob Clark
2015-02-03 14:04                     ` Rob Clark
2015-02-03 14:17                       ` Arnd Bergmann
2015-02-03 14:41                         ` Russell King - ARM Linux
2015-02-03 14:52                           ` Arnd Bergmann [this message]
2015-02-03 15:22                             ` Russell King - ARM Linux
2015-02-03 15:31                               ` [Linaro-mm-sig] " Arnd Bergmann
2015-02-03 15:54                                 ` Russell King - ARM Linux
2015-02-03 16:12                                   ` Arnd Bergmann
2015-02-03 16:22                                     ` Rob Clark
2015-02-03 16:36                                       ` Arnd Bergmann
2015-02-03 20:04                                         ` Daniel Vetter
2015-02-03 21:42                                           ` Arnd Bergmann
2015-02-03 22:07                                             ` Daniel Vetter
2015-02-04  0:14                                             ` Russell King - ARM Linux
2015-02-03 17:01                                       ` Russell King - ARM Linux
2015-02-03 16:58                                     ` Russell King - ARM Linux
2015-02-03 17:35                                       ` Rob Clark
2015-02-03 20:08                                         ` Daniel Vetter
2015-02-03 21:44                                         ` Arnd Bergmann
2015-02-03 15:25                             ` Rob Clark
2015-02-03 15:19                           ` Rob Clark
2015-02-03 14:37                       ` Russell King - ARM Linux
2015-02-03 14:44                         ` Rob Clark
2015-02-03 14:58                           ` Russell King - ARM Linux
2015-02-02  5:53             ` Sumit Semwal
2015-02-11  8:28   ` Marek Szyprowski
2015-02-11 11:12     ` Russell King - ARM Linux
2015-02-11 11:23       ` Rob Clark
2015-02-11 12:56         ` Daniel Vetter
2015-02-11 13:30           ` Rob Clark
2015-02-11 12:20       ` Marek Szyprowski
2015-02-11 16:23         ` Russell King - ARM Linux
2015-05-05 14:41           ` Sumit Semwal
2015-06-03  6:39             ` [Linaro-mm-sig] " Hans Verkuil
2015-06-03  8:41               ` Russell King - ARM Linux
2015-06-03  9:37                 ` Hans Verkuil
2015-06-04  5:24                   ` Sumit Semwal
2015-01-28 14:09 ` [RFCv3 1/2] device: add dma_params->max_segment_count Marek Szyprowski
2015-06-03  6:13 ` [Linaro-mm-sig] " Hans Verkuil

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=4830208.H6zxrGlT1D@wuerfel \
    --to=arnd@arndb.de \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@arm.linux.org.uk \
    --cc=m.szyprowski@samsung.com \
    --cc=robdclark@gmail.com \
    --cc=robin.murphy@arm.com \
    --cc=stanislawski.tomasz@googlemail.com \
    --cc=sumit.semwal@linaro.org \
    /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