All of lore.kernel.org
 help / color / mirror / Atom feed
From: Don Dutile <ddutile@redhat.com>
To: Catalin Marinas <catalin.marinas@arm.com>
Cc: "arnd@arndb.de" <arnd@arndb.de>,
	Will Deacon <Will.Deacon@arm.com>,
	"linaro-mm-sig@lists.linaro.org" <linaro-mm-sig@lists.linaro.org>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Hiroshi Doyu <hdoyu@nvidia.com>
Subject: Re: DMA mapping API(IOMMU) for ARM64?
Date: Tue, 18 Jun 2013 18:08:15 -0400	[thread overview]
Message-ID: <51C0DA4F.1010405@redhat.com> (raw)
In-Reply-To: <20130618125054.GL9930@arm.com>

On 06/18/2013 08:50 AM, Catalin Marinas wrote:
> On Tue, Jun 18, 2013 at 12:01:37PM +0100, Hiroshi Doyu wrote:
>> Arnd Bergmann<arnd@arndb.de>  wrote @ Tue, 18 Jun 2013 12:32:44 +0200:
>>> On Tuesday 18 June 2013 11:19:14 Will Deacon wrote:
>>>> I've spoken briefly with Catalin about this and it seems like there might be
>>>> *some* scope for sharing common dma-mapping code between architectures.
>>>> There doesn't really need to be any architecture-specific details in
>>>> allocating iova space and the interface to the iommu drivers is
>>>> well-defined. The arch-specific stuff is bogged down in the non-coherent
>>>> buffer management, but that doesn't necessarily equate to lots of code.
>>>>
>>>> So, the best bet would be to figure out how to split up what we have under
>>>> arch/arm/ so that it can be re-used by arm64 and potentially other
>>>> architectures (powerpc has some simple stuff for coherent mappings and some
>>>> less-simple stuff for non-coherent buffers).
>>>
>>> I'm sure that other architectures are interested in sharing the code.
>>> Best move it into the global mm/ directory, at least the version for
>>> coherent mappings.
>>
>> I'm guessing that this kind of unification usually takes some time
>> since we need to factor out the common code from the different
>> ${ARCH}/mm/dma-mapping.c. Also some of ${ARCH} has IOMMU support in
>> it. So if we want to develop our 64-bit ARM with working DMA mapping
>> API during this transition, the step to take would be:
>>
>> 1, Copy arch/arm/mm/dma-mapping.c arch/arm64/mm/dma-mapping.c(+swiotlb)
>> 2, Adapt arch/arm64/mm/dma-mapping.c(+swiotlb) to 64bit compatible.
>> 3, Factor out the common code from them into mm/dma-mapping.c
>
> Or add the relevant code to something like lib/iommu-helper.c, convert
> arm64 to use that and we can work on converting arm and other
> architectures afterwards.
>
why not in current drivers/iommu directory ?

WARNING: multiple messages have this Message-ID (diff)
From: ddutile@redhat.com (Don Dutile)
To: linux-arm-kernel@lists.infradead.org
Subject: DMA mapping API(IOMMU) for ARM64?
Date: Tue, 18 Jun 2013 18:08:15 -0400	[thread overview]
Message-ID: <51C0DA4F.1010405@redhat.com> (raw)
In-Reply-To: <20130618125054.GL9930@arm.com>

On 06/18/2013 08:50 AM, Catalin Marinas wrote:
> On Tue, Jun 18, 2013 at 12:01:37PM +0100, Hiroshi Doyu wrote:
>> Arnd Bergmann<arnd@arndb.de>  wrote @ Tue, 18 Jun 2013 12:32:44 +0200:
>>> On Tuesday 18 June 2013 11:19:14 Will Deacon wrote:
>>>> I've spoken briefly with Catalin about this and it seems like there might be
>>>> *some* scope for sharing common dma-mapping code between architectures.
>>>> There doesn't really need to be any architecture-specific details in
>>>> allocating iova space and the interface to the iommu drivers is
>>>> well-defined. The arch-specific stuff is bogged down in the non-coherent
>>>> buffer management, but that doesn't necessarily equate to lots of code.
>>>>
>>>> So, the best bet would be to figure out how to split up what we have under
>>>> arch/arm/ so that it can be re-used by arm64 and potentially other
>>>> architectures (powerpc has some simple stuff for coherent mappings and some
>>>> less-simple stuff for non-coherent buffers).
>>>
>>> I'm sure that other architectures are interested in sharing the code.
>>> Best move it into the global mm/ directory, at least the version for
>>> coherent mappings.
>>
>> I'm guessing that this kind of unification usually takes some time
>> since we need to factor out the common code from the different
>> ${ARCH}/mm/dma-mapping.c. Also some of ${ARCH} has IOMMU support in
>> it. So if we want to develop our 64-bit ARM with working DMA mapping
>> API during this transition, the step to take would be:
>>
>> 1, Copy arch/arm/mm/dma-mapping.c arch/arm64/mm/dma-mapping.c(+swiotlb)
>> 2, Adapt arch/arm64/mm/dma-mapping.c(+swiotlb) to 64bit compatible.
>> 3, Factor out the common code from them into mm/dma-mapping.c
>
> Or add the relevant code to something like lib/iommu-helper.c, convert
> arm64 to use that and we can work on converting arm and other
> architectures afterwards.
>
why not in current drivers/iommu directory ?

  parent reply	other threads:[~2013-06-18 22:08 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-18  2:39 DMA mapping API(IOMMU) for ARM64? Hiroshi Doyu
2013-06-18  2:39 ` Hiroshi Doyu
     [not found] ` <20130618.053955.305832937374936961.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-06-18 10:19   ` Will Deacon
2013-06-18 10:19     ` Will Deacon
     [not found]     ` <20130618101914.GB3539-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org>
2013-06-18 10:32       ` Arnd Bergmann
2013-06-18 10:32         ` Arnd Bergmann
2013-06-18 10:38         ` Catalin Marinas
2013-06-18 10:38           ` Catalin Marinas
2013-06-18 11:01         ` Hiroshi Doyu
2013-06-18 11:01           ` Hiroshi Doyu
2013-06-18 12:50           ` Catalin Marinas
2013-06-18 12:50             ` Catalin Marinas
     [not found]             ` <20130618125054.GL9930-5wv7dgnIgG8@public.gmane.org>
2013-06-18 14:15               ` Arnd Bergmann
2013-06-18 14:15                 ` Arnd Bergmann
     [not found]                 ` <201306181615.27341.arnd-r2nGTMty4D4@public.gmane.org>
2013-06-18 15:20                   ` Hiroshi Doyu
2013-06-18 15:20                     ` Hiroshi Doyu
2013-06-19  9:29               ` Marek Szyprowski
2013-06-19  9:29                 ` Marek Szyprowski
2013-06-18 22:08             ` Don Dutile [this message]
2013-06-18 22:08               ` Don Dutile
     [not found]               ` <51C0DA4F.1010405-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-06-19 11:11                 ` Catalin Marinas
2013-06-19 11:11                   ` Catalin Marinas
     [not found]                   ` <20130619111137.GJ9261-jF64zX8BO082Zs7wWoiTUGZHpeb/A1Y/@public.gmane.org>
2014-02-05 16:10                     ` [Linaro-mm-sig] " Ritesh Harjani
     [not found]           ` <20130618.140137.1551430695673122122.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-06-18 12:51             ` Arnd Bergmann
2013-06-18 12:51               ` Arnd Bergmann

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=51C0DA4F.1010405@redhat.com \
    --to=ddutile@redhat.com \
    --cc=Will.Deacon@arm.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=hdoyu@nvidia.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-tegra@vger.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.