From: Christoph Hellwig <hch@lst.de>
To: Robin Murphy <robin.murphy@arm.com>
Cc: Christoph Hellwig <hch@lst.de>, Joerg Roedel <joro@8bytes.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will.deacon@arm.com>,
Tom Lendacky <thomas.lendacky@amd.com>,
iommu@lists.linux-foundation.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 16/19] dma-iommu: don't depend on CONFIG_DMA_DIRECT_REMAP
Date: Mon, 11 Feb 2019 17:39:36 +0100 [thread overview]
Message-ID: <20190211163936.GA29978@lst.de> (raw)
In-Reply-To: <4698cdca-0e5b-c82f-bb80-3ba0f986c544@arm.com>
On Wed, Feb 06, 2019 at 11:55:49AM +0000, Robin Murphy wrote:
> On 14/01/2019 09:41, Christoph Hellwig wrote:
>> For entirely dma coherent architectures there is no good reason to ever
>> remap dma coherent allocation.
>
> Yes there is, namely assembling large buffers without the need for massive
> CMA areas and compaction overhead under memory fragmentation. That has
> always been a distinct concern from the DMA_DIRECT_REMAP cases; they've
> just been able to share a fair few code paths.
Well, I guess I need to reword this - there is no _requirement_ to
remap. And x86 has been happy to not remap so far and I see absolutely
no reason to force anyone to remap.
>> Move all the remap and pool code under
>> CONFIG_DMA_DIRECT_REMAP ifdefs, and drop the Kconfig dependency.
>
> As far as I'm concerned that splits things the wrong way. Logically,
> iommu_dma_alloc() should always have done its own vmap() instead of just
> returning the bare pages array, but that was tricky to resolve with the
> design of having the caller handle everything to do with coherency (forcing
> the caller to unpick that mapping just to remap it yet again in the
> noncoherent case didn't seem sensible).
I don't parse this. In the old code base before this series
iommu_dma_alloc is a relatively low-level helper allocating and mapping
pages. And that one should have done the remapping, and in fact does
so since ("dma-iommu: refactor page array remap helpers"). It just
happens that the function is now called iommu_dma_alloc_remap.
The new iommu_dma_alloc is the high level entry point that handles
every possible case of different allocations, including those where
we do not have a virtual mapping.
next prev parent reply other threads:[~2019-02-11 16:39 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-14 9:41 implement generic dma_map_ops for IOMMUs Christoph Hellwig
2019-01-14 9:41 ` [PATCH 01/19] dma-mapping: add a Kconfig symbol to indicated arch_dma_prep_coherent presence Christoph Hellwig
2019-02-01 14:22 ` Robin Murphy
2019-02-01 16:12 ` Christoph Hellwig
2019-01-14 9:41 ` [PATCH 02/19] dma-iommu: cleanup dma-iommu.h Christoph Hellwig
2019-02-01 14:47 ` Robin Murphy
2019-02-01 16:13 ` Christoph Hellwig
2019-02-06 15:08 ` Robin Murphy
2019-02-11 15:59 ` Christoph Hellwig
2019-01-14 9:41 ` [PATCH 03/19] dma-iommu: don't use a scatterlist in iommu_dma_alloc Christoph Hellwig
2019-02-01 15:24 ` Robin Murphy
2019-02-01 16:16 ` Christoph Hellwig
2019-02-06 15:28 ` Robin Murphy
2019-02-11 16:00 ` Christoph Hellwig
2019-01-14 9:41 ` [PATCH 04/19] dma-iommu: remove the flush_page callback Christoph Hellwig
2019-02-01 15:28 ` Robin Murphy
2019-01-14 9:41 ` [PATCH 05/19] dma-iommu: move the arm64 wrappers to common code Christoph Hellwig
2019-01-14 9:41 ` [PATCH 06/19] dma-iommu: fix and refactor iommu_dma_mmap Christoph Hellwig
2019-02-05 15:02 ` Robin Murphy
2019-02-11 16:03 ` Christoph Hellwig
2019-01-14 9:41 ` [PATCH 07/19] dma-iommu: fix and refactor iommu_dma_get_sgtable Christoph Hellwig
2019-01-14 9:41 ` [PATCH 08/19] dma-iommu: move __iommu_dma_map Christoph Hellwig
2019-01-14 9:41 ` [PATCH 09/19] dma-iommu: refactor page array remap helpers Christoph Hellwig
2019-01-14 9:41 ` [PATCH 10/19] dma-iommu: factor atomic pool allocations into helpers Christoph Hellwig
2019-01-14 9:41 ` [PATCH 11/19] dma-iommu: factor contiguous " Christoph Hellwig
2019-01-14 9:41 ` [PATCH 12/19] dma-iommu: refactor iommu_dma_free Christoph Hellwig
2019-01-14 9:41 ` [PATCH 13/19] dma-iommu: don't remap contiguous allocations for coherent devices Christoph Hellwig
2019-01-14 9:41 ` [PATCH 14/19] dma-iommu: factor contiguous remapped allocations into helpers Christoph Hellwig
2019-01-14 9:41 ` [PATCH 15/19] dma-iommu: refactor iommu_dma_alloc Christoph Hellwig
2019-01-14 9:41 ` [PATCH 16/19] dma-iommu: don't depend on CONFIG_DMA_DIRECT_REMAP Christoph Hellwig
2019-02-06 11:55 ` Robin Murphy
2019-02-11 16:39 ` Christoph Hellwig [this message]
2019-01-14 9:41 ` [PATCH 17/19] dma-iommu: switch copyright boilerplace to SPDX Christoph Hellwig
2019-02-06 11:57 ` Robin Murphy
2019-01-14 9:41 ` [PATCH 18/19] arm64: switch copyright boilerplace to SPDX in dma-mapping.c Christoph Hellwig
2019-02-06 12:19 ` Robin Murphy
2019-01-14 9:41 ` [PATCH 19/19] arm64: trim includes " Christoph Hellwig
2019-01-28 7:53 ` implement generic dma_map_ops for IOMMUs 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=20190211163936.GA29978@lst.de \
--to=hch@lst.de \
--cc=catalin.marinas@arm.com \
--cc=iommu@lists.linux-foundation.org \
--cc=joro@8bytes.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robin.murphy@arm.com \
--cc=thomas.lendacky@amd.com \
--cc=will.deacon@arm.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).