From: Christoph Hellwig <hch@lst.de>
To: iommu@lists.linux-foundation.org
Cc: Konrad Rzeszutek Wilk <konrad@darnok.org>,
linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
linux-c6x-dev@linux-c6x.org, linux-cris-kernel@axis.com,
linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org,
linux-m68k@lists.linux-m68k.org, linux-metag@vger.kernel.org,
Michal Simek <monstr@monstr.eu>,
linux-mips@linux-mips.org, linux-parisc@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, patches@groups.riscv.org,
linux-s390@vger.kernel.org, linux-sh@vger.kernel.org,
sparclinux@vger.kernel.org, Guan Xuetao <gxt@mprc.pku.edu.cn>,
x86@kernel.org, linux-arch@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: consolidate direct dma mapping V3
Date: Wed, 10 Jan 2018 08:59:54 +0100 [thread overview]
Message-ID: <20180110080027.13879-1-hch@lst.de> (raw)
Message-ID: <20180110075954.rNNS_akKtTT2Fymmqi57YtAPw3BFv8C0i1tLoStUYI0@z> (raw)
Almost every architecture supports a direct dma mapping implementation,
where no iommu is used and the device dma address is a 1:1 mapping to
the physical address or has a simple linear offset. Currently the
code for this implementation is most duplicated over the architectures,
and the duplicated again in the swiotlb code, and then duplicated again
for special cases like the x86 memory encryption DMA ops.
This series takes the existing very simple dma-noop dma mapping
implementation, enhances it with all the x86 features and quirks, and
creates a common set of architecture hooks for it and the swiotlb code.
It then switches a number of architectures to this generic
direct map implemention.
Note that for now this only handles architectures that do cache coherent
DMA, but a similar consolidation for non-coherent architectures is in the
work for later merge windows.
A git tree is also available:
git://git.infradead.org/users/hch/misc.git dma-direct.3
Gitweb:
http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/dma-direct.3
Changes since V1:
- fixed a few patch description typos
- fixed a few printk formats
- fixed an off by one in dma_coherent_ok
- add a few Reviewed-by/Acked-by tags.
- moved the swiotlb consolidation to a new series
- dropped a few patches for now to not overwhelem the x86
maintainers. They will be resubmitted in the next merge window
next reply other threads:[~2018-01-10 7:59 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20180110075954.rNNS_akKtTT2Fymmqi57YtAPw3BFv8C0i1tLoStUYI0@z>
2018-01-10 7:59 ` Christoph Hellwig [this message]
[not found] ` <20180110075955.xyaqoPymRtW9wiPlNH79ciXXguYefS0SpDREHSzJJNI@z>
2018-01-10 7:59 ` [PATCH 01/33] alpha: mark jensen as broken Christoph Hellwig
[not found] ` <20180110075956.LpErkmnAuMrrkVJ1lJle-w8MeBWCs-j_MomRB9wlTUc@z>
2018-01-10 7:59 ` [PATCH 02/33] hexagon: remove unused flush_write_buffers definition Christoph Hellwig
[not found] ` <20180110075957.ZqzRe0YJoOX3-r_M1InpJF-fkUFqxM4XPxeIu4hv5V4@z>
2018-01-10 7:59 ` [PATCH 03/33] m32r: " Christoph Hellwig
[not found] ` <20180110075958.uuXcHI2qTnVew_U5EBCilZhfXepqQkdI7iIBCe6ZvhM@z>
2018-01-10 7:59 ` [PATCH 04/33] powerpc: " Christoph Hellwig
[not found] ` <20180110075959.6sEG2e0ysgrqrNgdXrZMZab8v4MeXogEiS35AWEA-Uo@z>
2018-01-10 7:59 ` [PATCH 05/33] arc: remove CONFIG_ARC_PLAT_NEEDS_PHYS_TO_DMA Christoph Hellwig
[not found] ` <20180110080000.kdub66o4ERXhkTs6iAgJTzptFPxgCNnobxK6BW5s2CY@z>
2018-01-10 8:00 ` [PATCH 06/33] m32r: remove the unused dma_capable helper Christoph Hellwig
[not found] ` <20180110080001.i0or7pFxqgscebJEezkpOFwBLaBX6WLM4BzpgMoSGZM@z>
2018-01-10 8:00 ` [PATCH 07/33] riscv: " Christoph Hellwig
[not found] ` <20180110080002.oJYlzkQZIl7chb9aZwzCP2l9mMUApBoXI5UiKJWy8v0@z>
2018-01-10 8:00 ` [PATCH 08/33] s390: " Christoph Hellwig
[not found] ` <20180110080003.kMHgc5OKQEdiGhTxL5ZAljnaQhIam1Yrlg2lV6uyXws@z>
2018-01-10 8:00 ` [PATCH 09/33] dma-mapping: take dma_pfn_offset into account in dma_max_pfn Christoph Hellwig
[not found] ` <20180110110755.ICMKgRQ-16iXlF5WyYQzYejYJ2HFnVYObMoyY7JdRRI@z>
2018-01-10 11:07 ` Robin Murphy
[not found] ` <20180110080004.OO8fmV19swMCRTH7Y9C4mJujh9hyLsyd5kkyz8W-hV0@z>
2018-01-10 8:00 ` [PATCH 10/33] arm64: don't override dma_max_pfn Christoph Hellwig
2018-01-10 11:08 ` Robin Murphy
[not found] ` <20180110080005.8xTp_tym5XoVLXy8A9NiaRfmI60iGHS0QaGMnvFiJ-Q@z>
2018-01-10 8:00 ` [PATCH 11/33] dma-mapping: move swiotlb arch helpers to a new header Christoph Hellwig
[not found] ` <20180110093145.kN7Q9sGLmW8qc9mlArDSUhgUrkgHaApCbGPkgMoBVf0@z>
2018-01-10 9:31 ` Vladimir Murzin
2018-01-10 15:22 ` Christoph Hellwig
[not found] ` <20180110145601.vM-zTBFRXJVeTsaMeEyr-jLgpB8zSncSpXT7XDge8Ik@z>
2018-01-10 14:56 ` Robin Murphy
2018-01-10 15:26 ` Christoph Hellwig
2018-01-10 15:31 ` Robin Murphy
2018-01-10 15:40 ` Christoph Hellwig
[not found] ` <20180110080006.MTsxI1aDMh9vBcilC2izpKByUL8RuY-zdCQ8TluBJw0@z>
2018-01-10 8:00 ` [PATCH 12/33] dma-mapping: move dma_mark_clean to dma-direct.h Christoph Hellwig
[not found] ` <20180110080007.rEJcGJnsUw0fD2K2ZfrNx9FlGbs4BGtJY9hROtwlnNY@z>
2018-01-10 8:00 ` [PATCH 13/33] hexagon: use the generic dma_capable helper Christoph Hellwig
[not found] ` <20180110080008.5g7TIFeXsNqmhfWd0bQI2aceFjAfL-Y4p0eJIPFAlpE@z>
2018-01-10 8:00 ` [PATCH 14/33] powerpc: rename dma_direct_ to dma_nommu_ Christoph Hellwig
[not found] ` <20180110080009.T6CSjomQhYjv6gcZIqnCFjTmFQ3yYZ8QX3iH9PbAU-I@z>
2018-01-10 8:00 ` [PATCH 15/33] microblaze: rename dma_direct to dma_nommu Christoph Hellwig
[not found] ` <20180110080010.GfSrvRB24PCfgkXIsri-KMzKowkuVbx57jsSbzr8CW8@z>
2018-01-10 8:00 ` [PATCH 16/33] microblaze: remove dma_nommu_dma_supported Christoph Hellwig
[not found] ` <20180110080011.OWmV710qZMREMCTLtMVbTNs8-CidojamtFV-NcZBsWU@z>
2018-01-10 8:00 ` [PATCH 17/33] microblaze: remove the dead !NOT_COHERENT_CACHE dma code Christoph Hellwig
[not found] ` <20180110080012.Jq8cyYAvWgjddf02kjDqiR23gjqlQUBne5dc2UH0pC4@z>
2018-01-10 8:00 ` [PATCH 18/33] s390: move s390_pci_dma_ops to asm/pci_dma.h Christoph Hellwig
[not found] ` <20180110080013.nj6_TAebQSWJSMMULMebTA9UAq8d-FigGYZzFTW0wzk@z>
2018-01-10 8:00 ` [PATCH 19/33] dma-mapping: warn when there is no coherent_dma_mask Christoph Hellwig
[not found] ` <20180110080014.lrA3Q12dVsDyKgptQXpxwIjwUVBVkHzOu8wDGXBW32g@z>
2018-01-10 8:00 ` [PATCH 20/33] dma-mapping: clear harmful GFP_* flags in common code Christoph Hellwig
[not found] ` <20180110115930.4WRO-OJiZ64fysr0n95q9RjVUAASZoTMeKtyIFGqOB0@z>
2018-01-10 11:59 ` Robin Murphy
2018-01-10 15:29 ` Christoph Hellwig
[not found] ` <20180110080015.iHTUn6yY5OkxN02q4UW8n0QrztbJ2kMwHvEbqloRHf8@z>
2018-01-10 8:00 ` [PATCH 21/33] dma-mapping: add an arch_dma_supported hook Christoph Hellwig
2018-01-12 13:17 ` Konrad Rzeszutek Wilk
[not found] ` <20180110080016.SbWZT892U0kagNge1bzkmXW0yOiNoK1K1Ln4xWZ3Qeg@z>
2018-01-10 8:00 ` [PATCH 22/33] dma-mapping: provide a generic asm/dma-mapping.h Christoph Hellwig
[not found] ` <20180110080017.ZsOyqiv2tlYuZ5o5Nk-sbd9cMz0GiRewWqqz2aymyVU@z>
2018-01-10 8:00 ` [PATCH 23/33] dma-direct: rename dma_noop to dma_direct Christoph Hellwig
[not found] ` <20180110080018.PuGVDS31BAewexTaLEfuREO6T64Rh81lwDu0NCPlY_o@z>
2018-01-10 8:00 ` [PATCH 24/33] dma-direct: use phys_to_dma Christoph Hellwig
2018-01-10 8:00 ` [PATCH 25/33] dma-direct: add dma address sanity checks Christoph Hellwig
[not found] ` <20180110080020.Iffmmjvf0MhCnxygiRRqncZll9O2qBKoLwydEQ4kcCs@z>
2018-01-10 8:00 ` [PATCH 26/33] dma-direct: add support for CMA allocation Christoph Hellwig
[not found] ` <20180110080021.XQySUg6vme-ZQOWCm3yjL2bAqslrQdRUlvYZwuC_t9w@z>
2018-01-10 8:00 ` [PATCH 27/33] dma-direct: use node local allocations for coherent memory Christoph Hellwig
2018-01-10 12:06 ` Robin Murphy
[not found] ` <20180110153017.FhjqEuKJd0frJtensuwzJhsnykXenurWQYJNgCQJjek@z>
2018-01-10 15:30 ` Christoph Hellwig
2018-01-10 16:49 ` Robin Murphy
[not found] ` <20180110080022.yRB7XMPyK5RV7ifPl_aC6KOUaxpRqE6MAlxFudqXv5U@z>
2018-01-10 8:00 ` [PATCH 28/33] dma-direct: add support for allocation from ZONE_DMA and ZONE_DMA32 Christoph Hellwig
[not found] ` <20180110080023.8Ogv4XgcKU3y5k-gvAr-eKUbFSVUWBZvEZD4fcacPtU@z>
2018-01-10 8:00 ` [PATCH 29/33] dma-direct: retry allocations using GFP_DMA for small masks Christoph Hellwig
[not found] ` <20180110093216.xAs3a-taANKhWXrMnfOqu1pyo8vpvUVecrDjO2EQMkU@z>
2018-01-10 9:32 ` Vladimir Murzin
[not found] ` <20180110080024.t6f8YONl22yDJu4otaUR-5LN-z4QWViVlawJYX7WKaM@z>
2018-01-10 8:00 ` [PATCH 30/33] dma-direct: make dma_direct_{alloc,free} available to other implementations Christoph Hellwig
[not found] ` <20180110080025.Rh60dqJ28iUl0dOzWQH1dsJNoHxb2fngQaFFE8fiH_4@z>
2018-01-10 8:00 ` [PATCH 31/33] dma-direct: reject too small dma masks Christoph Hellwig
2018-01-10 11:49 ` Robin Murphy
2018-01-10 15:32 ` Christoph Hellwig
2018-01-10 17:00 ` Robin Murphy
[not found] ` <20180110080026.nnf7hVVuEQ54XZuvNF6SkkldLNFlIu2iusWIRtlXJBg@z>
2018-01-10 8:00 ` [PATCH 32/33] cris: use dma-direct Christoph Hellwig
[not found] ` <20180110080027.HjVrEUjHRrZtzbRLugYctMZd6X4DEYYly0-JqvO79vM@z>
2018-01-10 8:00 ` [PATCH 33/33] h8300: " 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=20180110080027.13879-1-hch@lst.de \
--to=hch@lst.de \
--cc=gxt@mprc.pku.edu.cn \
--cc=iommu@lists.linux-foundation.org \
--cc=konrad@darnok.org \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-c6x-dev@linux-c6x.org \
--cc=linux-cris-kernel@axis.com \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@lists.linux-m68k.org \
--cc=linux-metag@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux-snps-arc@lists.infradead.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=monstr@monstr.eu \
--cc=patches@groups.riscv.org \
--cc=sparclinux@vger.kernel.org \
--cc=x86@kernel.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