From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv4 3/5] common: dma-mapping: Introduce common remapping functions
Date: Fri, 18 Jul 2014 15:13:35 +0100 [thread overview]
Message-ID: <20140718141335.GC4608@arm.com> (raw)
In-Reply-To: <CAOesGMimCAYnqxkKoYpZ2ws7x9eH4K1Yw3LnLz9HC6MWyHEo3A@mail.gmail.com>
On Wed, Jul 09, 2014 at 11:46:56PM +0100, Olof Johansson wrote:
> On Wed, Jul 2, 2014 at 11:03 AM, Laura Abbott <lauraa@codeaurora.org> wrote:
> > For architectures without coherent DMA, memory for DMA may
> > need to be remapped with coherent attributes. Factor out
> > the the remapping code from arm and put it in a
> > common location to reduced code duplication.
> >
> > Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
>
> Hm. The switch from ioremap to map_vm_area() here seems to imply that
> lib/ioremap can/should be reworked to use just wrap the vmalloc
> functions too?
ioremap_page_range() does not require the allocation of a map page array
and assumes that the mapped memory is physically contiguous. This would
be more efficient than the vmap() implementation which is generic enough
to allow non-contiguous memory allocations.
At some point, we'll have to support SMMU on arm64 and we can have 4
combinations of coherency and IOMMU. When an IOMMU is present, we don't
require physically contiguous memory but we may require non-cacheable
mappings, in which case vmap comes in handy.
--
Catalin
WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: Olof Johansson <olof@lixom.net>
Cc: Laura Abbott <lauraa@codeaurora.org>,
Will Deacon <Will.Deacon@arm.com>,
David Riley <davidriley@chromium.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Ritesh Harjain <ritesh.harjani@gmail.com>,
linux-mm <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCHv4 3/5] common: dma-mapping: Introduce common remapping functions
Date: Fri, 18 Jul 2014 15:13:35 +0100 [thread overview]
Message-ID: <20140718141335.GC4608@arm.com> (raw)
In-Reply-To: <CAOesGMimCAYnqxkKoYpZ2ws7x9eH4K1Yw3LnLz9HC6MWyHEo3A@mail.gmail.com>
On Wed, Jul 09, 2014 at 11:46:56PM +0100, Olof Johansson wrote:
> On Wed, Jul 2, 2014 at 11:03 AM, Laura Abbott <lauraa@codeaurora.org> wrote:
> > For architectures without coherent DMA, memory for DMA may
> > need to be remapped with coherent attributes. Factor out
> > the the remapping code from arm and put it in a
> > common location to reduced code duplication.
> >
> > Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
>
> Hm. The switch from ioremap to map_vm_area() here seems to imply that
> lib/ioremap can/should be reworked to use just wrap the vmalloc
> functions too?
ioremap_page_range() does not require the allocation of a map page array
and assumes that the mapped memory is physically contiguous. This would
be more efficient than the vmap() implementation which is generic enough
to allow non-contiguous memory allocations.
At some point, we'll have to support SMMU on arm64 and we can have 4
combinations of coherency and IOMMU. When an IOMMU is present, we don't
require physically contiguous memory but we may require non-cacheable
mappings, in which case vmap comes in handy.
--
Catalin
--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: Olof Johansson <olof@lixom.net>
Cc: Laura Abbott <lauraa@codeaurora.org>,
Will Deacon <Will.Deacon@arm.com>,
David Riley <davidriley@chromium.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Ritesh Harjain <ritesh.harjani@gmail.com>,
linux-mm <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCHv4 3/5] common: dma-mapping: Introduce common remapping functions
Date: Fri, 18 Jul 2014 15:13:35 +0100 [thread overview]
Message-ID: <20140718141335.GC4608@arm.com> (raw)
In-Reply-To: <CAOesGMimCAYnqxkKoYpZ2ws7x9eH4K1Yw3LnLz9HC6MWyHEo3A@mail.gmail.com>
On Wed, Jul 09, 2014 at 11:46:56PM +0100, Olof Johansson wrote:
> On Wed, Jul 2, 2014 at 11:03 AM, Laura Abbott <lauraa@codeaurora.org> wrote:
> > For architectures without coherent DMA, memory for DMA may
> > need to be remapped with coherent attributes. Factor out
> > the the remapping code from arm and put it in a
> > common location to reduced code duplication.
> >
> > Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
>
> Hm. The switch from ioremap to map_vm_area() here seems to imply that
> lib/ioremap can/should be reworked to use just wrap the vmalloc
> functions too?
ioremap_page_range() does not require the allocation of a map page array
and assumes that the mapped memory is physically contiguous. This would
be more efficient than the vmap() implementation which is generic enough
to allow non-contiguous memory allocations.
At some point, we'll have to support SMMU on arm64 and we can have 4
combinations of coherency and IOMMU. When an IOMMU is present, we don't
require physically contiguous memory but we may require non-cacheable
mappings, in which case vmap comes in handy.
--
Catalin
next prev parent reply other threads:[~2014-07-18 14:13 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-02 18:03 [PATCHv4 0/5] DMA Atomic pool for arm64 Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-02 18:03 ` [PATCHv4 1/5] lib/genalloc.c: Add power aligned algorithm Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-03 18:10 ` Will Deacon
2014-07-03 18:10 ` Will Deacon
2014-07-03 18:10 ` Will Deacon
2014-07-09 22:35 ` Olof Johansson
2014-07-09 22:35 ` Olof Johansson
2014-07-09 22:35 ` Olof Johansson
2014-07-02 18:03 ` [PATCHv4 2/5] lib/genalloc.c: Add genpool range check function Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-03 18:14 ` Will Deacon
2014-07-03 18:14 ` Will Deacon
2014-07-03 18:14 ` Will Deacon
2014-07-09 22:33 ` Olof Johansson
2014-07-09 22:33 ` Olof Johansson
2014-07-09 22:33 ` Olof Johansson
2014-07-21 19:51 ` Laura Abbott
2014-07-21 19:51 ` Laura Abbott
2014-07-21 19:51 ` Laura Abbott
2014-07-22 15:50 ` Catalin Marinas
2014-07-22 15:50 ` Catalin Marinas
2014-07-22 15:50 ` Catalin Marinas
2014-07-02 18:03 ` [PATCHv4 3/5] common: dma-mapping: Introduce common remapping functions Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-09 22:46 ` Olof Johansson
2014-07-09 22:46 ` Olof Johansson
2014-07-09 22:46 ` Olof Johansson
2014-07-18 14:13 ` Catalin Marinas [this message]
2014-07-18 14:13 ` Catalin Marinas
2014-07-18 14:13 ` Catalin Marinas
2014-07-18 13:53 ` Catalin Marinas
2014-07-18 13:53 ` Catalin Marinas
2014-07-18 13:53 ` Catalin Marinas
2014-07-21 19:33 ` Laura Abbott
2014-07-21 19:33 ` Laura Abbott
2014-07-21 19:33 ` Laura Abbott
2014-07-22 16:04 ` Catalin Marinas
2014-07-22 16:04 ` Catalin Marinas
2014-07-22 16:04 ` Catalin Marinas
2014-07-02 18:03 ` [PATCHv4 4/5] arm: use genalloc for the atomic pool Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-04 13:42 ` Thierry Reding
2014-07-04 13:42 ` Thierry Reding
2014-07-21 21:22 ` Laura Abbott
2014-07-21 21:22 ` Laura Abbott
2014-07-21 21:22 ` Laura Abbott
2014-07-02 18:03 ` [PATCHv4 5/5] arm64: Add atomic pool for non-coherent and CMA allocations Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-02 18:03 ` Laura Abbott
2014-07-04 13:35 ` Thierry Reding
2014-07-04 13:35 ` Thierry Reding
2014-07-21 22:00 ` Laura Abbott
2014-07-21 22:00 ` Laura Abbott
2014-07-21 22:00 ` Laura Abbott
2014-07-18 13:43 ` Catalin Marinas
2014-07-18 13:43 ` Catalin Marinas
2014-07-18 13:43 ` Catalin Marinas
2014-07-21 22:36 ` Laura Abbott
2014-07-21 22:36 ` Laura Abbott
2014-07-21 22:36 ` Laura Abbott
2014-07-22 15:56 ` Catalin Marinas
2014-07-22 15:56 ` Catalin Marinas
2014-07-22 15:56 ` Catalin Marinas
2014-07-22 18:06 ` Arnd Bergmann
2014-07-22 18:06 ` Arnd Bergmann
2014-07-22 18:06 ` Arnd Bergmann
2014-07-22 21:03 ` Catalin Marinas
2014-07-22 21:03 ` Catalin Marinas
2014-07-22 21:03 ` Catalin Marinas
2014-07-22 23:51 ` Laura Abbott
2014-07-22 23:51 ` Laura Abbott
2014-07-22 23:51 ` Laura Abbott
2014-07-23 11:12 ` Arnd Bergmann
2014-07-23 11:12 ` Arnd Bergmann
2014-07-23 11:12 ` Arnd Bergmann
-- strict thread matches above, loose matches on Subject: below --
2014-07-23 1:35 [PATCHv4 0/5] Atomic pool for arm64 Laura Abbott
2014-07-23 1:35 ` [PATCHv4 3/5] common: dma-mapping: Introduce common remapping functions Laura Abbott
2014-07-23 1:35 ` Laura Abbott
2014-07-23 1:35 ` Laura Abbott
2014-07-23 10:45 ` Catalin Marinas
2014-07-23 10:45 ` Catalin Marinas
2014-07-23 10:45 ` Catalin Marinas
2014-07-23 21:56 ` Laura Abbott
2014-07-23 21:56 ` Laura Abbott
2014-07-23 21:56 ` Laura Abbott
2014-07-24 13:52 ` Catalin Marinas
2014-07-24 13:52 ` Catalin Marinas
2014-07-24 13:52 ` Catalin Marinas
2014-07-23 11:16 ` Catalin Marinas
2014-07-23 11:16 ` Catalin Marinas
2014-07-23 11:16 ` Catalin Marinas
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=20140718141335.GC4608@arm.com \
--to=catalin.marinas@arm.com \
--cc=linux-arm-kernel@lists.infradead.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.