From: Abhinav Kochhar <kochhar.abhinav@gmail.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,
Kyungmin Park <kyungmin.park@samsung.com>
Subject: [Linaro-mm-sig] [PATCH 0/3] [RFC] Kernel Virtual Memory allocation issue in dma-mapping framework
Date: Fri, 11 May 2012 11:01:46 +0900 [thread overview]
Message-ID: <CALYq+qSt+OU0FYBwA3a9hFMtBTFmGN--QmWowKz_pbZhJfurhQ@mail.gmail.com> (raw)
In-Reply-To: <CALYq+qRFF-7p0P2+zG=4=s5+-D4pyB6G2wBCpuonoFRJ6FLo1Q@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2301 bytes --]
Hello,
This is a request for comments on dma-mapping patches for ARM. I
did some additions for issue related to kernel virtual memory allocations
in the iommu ops defined in dma-mapping framework.
The patches are based on:
git://git.linaro.org/people/mszyprowski/linux-dma-mapping.git3.4-rc3-arm-dma-v9
The code has been tested on Samsung Exynos5 SMDK5250.
These patches do the following:
1. Define a new dma attribute to identify user space allocation.
2. Add new wrapper functions to pass the dma attribute defined in (1)
above, as in the current framework there is no way to pass the new
attribute which can be used to differentiate between kernel and user
allocations.
3. Extend the existing arm_dma_ops for iommu enabled devices to
differentiate between kernel and user space allocations.
Patch summary:
[PATCH 1/3]:
Common: add DMA_ATTR_USER_SPACE to dma-attr. This can be passed to
arm_dma_ops to identify the type of allocation which can be either from
kernel or from user.
[PATCH 2/3]:
ARM: add "struct page_infodma" to hold information for allocated pages.
This can be attached to any of the devices which is making use of
dma-mapping APIs. Any interested device should allocate this structure and
store all the relevant information about the allocated pages to be able to
do a look up for all future references.
ARM: add dma_alloc_writecombine_user() function to pass DMA_ATTR_USER_SPACE
attribute
ARM: add dma_free_writecombine_user() function to pass DMA_ATTR_USER_SPACE
attribute
ARM: add dma_mmap_writecombine_user() function to pass DMA_ATTR_USER_SPACE
attribute
[PATCH 3/3]:
ARM: add check for allocation type in __dma_alloc_remap() function
ARM: add check for allocation type in arm_iommu_alloc_attrs() function
ARM: add check for allocation type in arm_iommu_mmap_attrs() function
ARM: re-used dma_addr as a flag to check for memory allocation type. It was
an unused argument and the prototype does not pass dma-attrs, so used this
as a means to pass the flag.
ARM: add check for allocation type in arm_iommu_free_attrs() function
arch/arm/include/asm/dma-mapping.h | 31 +++++++
arch/arm/mm/dma-mapping.c | 168
++++++++++++++++++++++++++----------
include/linux/dma-attrs.h | 1 +
3 files changed, 155 insertions(+), 45 deletions(-)
[-- Attachment #2: Type: text/html, Size: 2588 bytes --]
parent reply other threads:[~2012-05-11 2:01 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <CALYq+qRFF-7p0P2+zG=4=s5+-D4pyB6G2wBCpuonoFRJ6FLo1Q@mail.gmail.com>]
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=CALYq+qSt+OU0FYBwA3a9hFMtBTFmGN--QmWowKz_pbZhJfurhQ@mail.gmail.com \
--to=kochhar.abhinav@gmail.com \
--cc=kyungmin.park@samsung.com \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mm@kvack.org \
--cc=m.szyprowski@samsung.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