From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: linux-arm-kernel@lists.infradead.org,
linaro-mm-sig@lists.linaro.org, linux-mm@kvack.org,
linux-arch@vger.kernel.org, iommu@lists.linux-foundation.org,
Kyungmin Park <kyungmin.park@samsung.com>,
Arnd Bergmann <arnd@arndb.de>, Joerg Roedel <joro@8bytes.org>,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
Chunsang Jeong <chunsang.jeong@linaro.org>,
Krishna Reddy <vdumpa@nvidia.com>,
KyongHo Cho <pullip.cho@samsung.com>,
Andrzej Pietrasiewicz <andrzej.p@samsung.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
Hiroshi Doyu <hdoyu@nvidia.com>,
Subash Patel <subashrp@gmail.com>,
linux-next@vger.kernel.org
Subject: Re: [PATCHv9 10/10] ARM: dma-mapping: add support for IOMMU mapper
Date: Thu, 10 May 2012 22:08:39 -0400 [thread overview]
Message-ID: <CAP=VYLr=NeGvppR4ONpnRh=gjCSPdKxYj1HYh_FvadAeUzcbBQ@mail.gmail.com> (raw)
In-Reply-To: <1334756652-30830-11-git-send-email-m.szyprowski@samsung.com>
On Wed, Apr 18, 2012 at 9:44 AM, Marek Szyprowski
<m.szyprowski@samsung.com> wrote:
> This patch add a complete implementation of DMA-mapping API for
> devices which have IOMMU support.
Hi Marek,
It looks like this patch breaks no-MMU builds on ARM, at least
according to git bisect. Here is a link to a linux-next failure:
http://kisskb.ellerman.id.au/kisskb/buildresult/6291233/
arch/arm/mm/dma-mapping.c:726:42: error: 'pgprot_kernel' undeclared
(first use in this function)
make[2]: *** [arch/arm/mm/dma-mapping.o] Error 1
Please have a look, thanks.
Paul.
---
>
> This implementation tries to optimize dma address space usage by remapping
> all possible physical memory chunks into a single dma address space chunk.
>
> DMA address space is managed on top of the bitmap stored in the
> dma_iommu_mapping structure stored in device->archdata. Platform setup
> code has to initialize parameters of the dma address space (base address,
> size, allocation precision order) with arm_iommu_create_mapping()
> function.
> To reduce the size of the bitmap, all allocations are aligned to the
> specified order of base 4 KiB pages.
>
> dma_alloc_* functions allocate physical memory in chunks, each with
> alloc_pages() function to avoid failing if the physical memory gets
> fragmented. In worst case the allocated buffer is composed of 4 KiB page
> chunks.
>
> dma_map_sg() function minimizes the total number of dma address space
> chunks by merging of physical memory chunks into one larger dma address
> space chunk. If requested chunk (scatter list entry) boundaries
> match physical page boundaries, most calls to dma_map_sg() requests will
> result in creating only one chunk in dma address space.
>
> dma_map_page() simply creates a mapping for the given page(s) in the dma
> address space.
>
> All dma functions also perform required cache operation like their
> counterparts from the arm linear physical memory mapping version.
>
> This patch contains code and fixes kindly provided by:
> - Krishna Reddy <vdumpa@nvidia.com>,
> - Andrzej Pietrasiewicz <andrzej.p@samsung.com>,
> - Hiroshi DOYU <hdoyu@nvidia.com>
>
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Tested-By: Subash Patel <subash.ramaswamy@linaro.org>
> ---
> arch/arm/Kconfig | 8 +
> arch/arm/include/asm/device.h | 3 +
> arch/arm/include/asm/dma-iommu.h | 34 ++
> arch/arm/mm/dma-mapping.c | 727
> +++++++++++++++++++++++++++++++++++++-
> arch/arm/mm/vmregion.h | 2 +-
> 5 files changed, 759 insertions(+), 15 deletions(-)
> create mode 100644 arch/arm/include/asm/dma-iommu.h
>
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2012-05-11 2:09 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-18 13:44 [PATCHv9 00/10] ARM: DMA-mapping framework redesign Marek Szyprowski
2012-04-18 13:44 ` [PATCHv9 01/10] common: add dma_mmap_from_coherent() function Marek Szyprowski
2012-04-18 13:44 ` [PATCHv9 02/10] ARM: dma-mapping: use pr_* instread of printk Marek Szyprowski
2012-04-18 13:44 ` [PATCHv9 03/10] ARM: dma-mapping: introduce DMA_ERROR_CODE constant Marek Szyprowski
2012-04-18 13:44 ` [PATCHv9 04/10] ARM: dma-mapping: remove offset parameter to prepare for generic dma_ops Marek Szyprowski
2012-04-18 13:44 ` [PATCHv9 05/10] ARM: dma-mapping: use asm-generic/dma-mapping-common.h Marek Szyprowski
2012-04-18 13:44 ` [PATCHv9 06/10] ARM: dma-mapping: implement dma sg methods on top of any generic dma ops Marek Szyprowski
2012-04-18 13:44 ` [PATCHv9 07/10] ARM: dma-mapping: move all dma bounce code to separate dma ops structure Marek Szyprowski
2012-04-18 13:44 ` [PATCHv9 08/10] ARM: dma-mapping: remove redundant code and cleanup Marek Szyprowski
2012-04-18 13:44 ` [PATCHv9 09/10] ARM: dma-mapping: use alloc, mmap, free from dma_ops Marek Szyprowski
2012-04-18 13:44 ` [PATCHv9 10/10] ARM: dma-mapping: add support for IOMMU mapper Marek Szyprowski
2012-04-20 1:44 ` [Linaro-mm-sig] " Abhinav Kochhar
2012-04-20 1:48 ` Abhinav Kochhar
2012-04-20 1:51 ` Kyungmin Park
2012-04-23 10:42 ` Abhinav Kochhar
2012-05-11 2:08 ` Paul Gortmaker [this message]
2012-05-11 7:52 ` Marek Szyprowski
2012-05-11 8:33 ` [PATCH] ARM: dma-mapping: fix build break on no-MMU systems Marek Szyprowski
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='CAP=VYLr=NeGvppR4ONpnRh=gjCSPdKxYj1HYh_FvadAeUzcbBQ@mail.gmail.com' \
--to=paul.gortmaker@windriver.com \
--cc=andrzej.p@samsung.com \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=chunsang.jeong@linaro.org \
--cc=hdoyu@nvidia.com \
--cc=iommu@lists.linux-foundation.org \
--cc=joro@8bytes.org \
--cc=konrad.wilk@oracle.com \
--cc=kyungmin.park@samsung.com \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mm@kvack.org \
--cc=linux-next@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=m.szyprowski@samsung.com \
--cc=pullip.cho@samsung.com \
--cc=subashrp@gmail.com \
--cc=vdumpa@nvidia.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