From: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org> To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Cc: linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org, linux-ia64-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-sh-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, sparclinux-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Guan Xuetao <gxt-TG0Ac1+ktVePQbnJrJN+5g@public.gmane.org>, linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-s390-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-c6x-dev-jPsnJVOj+W6hPH1hqNUYSQ@public.gmane.org, linux-hexagon-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, Konrad Rzeszutek Wilk <konrad-Gq0aWv8utHQdnm+yROfE0A@public.gmane.org>, linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-m68k-cunTk1MwBs8S/qaLPR03pWD2FQJk+8+b@public.gmane.org, patches-q3qR2WxjNRFS9aJRtSZj7A@public.gmane.org, linux-metag-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Michal Simek <monstr-pSz03upnqPeHXe+LvDLADg@public.gmane.org>, linux-parisc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-cris-kernel-VrBV9hrLPhE@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-alpha-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org Subject: consolidate direct dma mapping V4 Date: Fri, 12 Jan 2018 09:41:58 +0100 [thread overview] Message-ID: <20180112084232.2857-1-hch@lst.de> (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 V3 - new patch to fix an off-by-one in mips dma_capable Changes since V2: - 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
WARNING: multiple messages have this Message-ID (diff)
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 V4 Date: Fri, 12 Jan 2018 09:41:58 +0100 [thread overview] Message-ID: <20180112084232.2857-1-hch@lst.de> (raw) Message-ID: <20180112084158.MOmccu7RCm4D41WGkqFg38O9M9MCp4G9V6oMgOTkxJ0@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 V3 - new patch to fix an off-by-one in mips dma_capable Changes since V2: - 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-12 8:41 UTC|newest] Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-01-12 8:41 Christoph Hellwig [this message] 2018-01-12 8:41 ` consolidate direct dma mapping V4 Christoph Hellwig 2018-01-12 8:41 ` [PATCH 01/34] alpha: mark jensen as broken Christoph Hellwig 2018-01-12 8:41 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 10/34] arm64: don't override dma_max_pfn Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 11/34] mips: fix an off-by-one in dma_capable Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 12/34] dma-mapping: move swiotlb arch helpers to a new header Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig [not found] ` <20180112084232.2857-1-hch-jcswGhMUV9g@public.gmane.org> 2018-01-12 8:42 ` [PATCH 02/34] hexagon: remove unused flush_write_buffers definition Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 03/34] m32r: " Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 04/34] powerpc: " Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 05/34] arc: remove CONFIG_ARC_PLAT_NEEDS_PHYS_TO_DMA Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 06/34] m32r: remove the unused dma_capable helper Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 07/34] riscv: " Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 08/34] s390: " Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 09/34] dma-mapping: take dma_pfn_offset into account in dma_max_pfn Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 13/34] dma-mapping: move dma_mark_clean to dma-direct.h Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 16/34] microblaze: rename dma_direct to dma_nommu Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 20/34] dma-mapping: warn when there is no coherent_dma_mask Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 22/34] dma-mapping: add an arch_dma_supported hook Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-02-02 17:47 ` Randy Dunlap 2018-02-02 17:47 ` Randy Dunlap 2018-01-12 8:42 ` [PATCH 23/34] dma-mapping: provide a generic asm/dma-mapping.h Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 25/34] dma-direct: use phys_to_dma Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 26/34] dma-direct: add dma address sanity checks Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-16 7:52 ` consolidate direct dma mapping V4 Christoph Hellwig 2018-01-16 7:52 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 14/34] hexagon: use the generic dma_capable helper Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 15/34] powerpc: rename dma_direct_ to dma_nommu_ Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 17/34] microblaze: remove dma_nommu_dma_supported Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 18/34] microblaze: remove the dead !NOT_COHERENT_CACHE dma code Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 19/34] s390: move s390_pci_dma_ops to asm/pci_dma.h Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 21/34] dma-mapping: clear harmful GFP_* flags in common code Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 24/34] dma-direct: rename dma_noop to dma_direct Christoph Hellwig 2018-01-12 8:42 ` [PATCH 27/34] dma-direct: add support for CMA allocation Christoph Hellwig 2018-01-12 8:42 ` [PATCH 28/34] dma-direct: use node local allocations for coherent memory Christoph Hellwig 2018-01-12 8:42 ` [PATCH 29/34] dma-direct: add support for allocation from ZONE_DMA and ZONE_DMA32 Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 30/34] dma-direct: retry allocations using GFP_DMA for small masks Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 31/34] dma-direct: make dma_direct_{alloc,free} available to other implementations Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 32/34] dma-direct: reject too small dma masks Christoph Hellwig 2018-01-12 8:42 ` [PATCH 33/34] cris: use dma-direct Christoph Hellwig 2018-01-12 8:42 ` Christoph Hellwig 2018-01-12 8:42 ` [PATCH 34/34] h8300: " Christoph Hellwig 2018-01-12 8:42 ` 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=20180112084232.2857-1-hch@lst.de \ --to=hch-jcswghmuv9g@public.gmane.org \ --cc=gxt-TG0Ac1+ktVePQbnJrJN+5g@public.gmane.org \ --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \ --cc=konrad-Gq0aWv8utHQdnm+yROfE0A@public.gmane.org \ --cc=linux-alpha-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=linux-c6x-dev-jPsnJVOj+W6hPH1hqNUYSQ@public.gmane.org \ --cc=linux-cris-kernel-VrBV9hrLPhE@public.gmane.org \ --cc=linux-hexagon-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-ia64-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-m68k-cunTk1MwBs8S/qaLPR03pWD2FQJk+8+b@public.gmane.org \ --cc=linux-metag-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \ --cc=linux-parisc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-s390-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-sh-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \ --cc=monstr-pSz03upnqPeHXe+LvDLADg@public.gmane.org \ --cc=patches-q3qR2WxjNRFS9aJRtSZj7A@public.gmane.org \ --cc=sparclinux-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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: linkBe 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).