[PATCHv3 0/3] ARM: replace custom consistent dma region with vmalloc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


This patchset replaces custom consistent dma regions usage in
dma-mapping framework in favour of generic vmalloc areas created on
demand for each allocation. The main purpose for this patchset is to
remove 2MiB limit of dma coherent/writecombine allocations.

Atomic allocations are served from special pool preallocated on boot,
becasue vmalloc areas cannot be reliably created in atomic context.

Linux v3.5-rc1 introduced a lot of changes to ARM dma-mapping subsystem
(CMA and dmamap_ops based implementation has been finally merged), so
the previous version of these patches is not applicable anymore. This
version provides an update required for applying them on v3.5-rc2 kernel
as well as some changes requested by Minchan Kim in his review.

This patch is based on vanilla v3.5-rc2 release.

Atomic allocations have been tested with s3c-sdhci driver on Samsung
UniversalC210 board with dmabounce code enabled to force
dma_alloc_coherent() use on each dma_map_* call (some of them are made
from interrupts).

Best regards
Marek Szyprowski
Samsung Poland R&D Center


- rebased onto v3.4-rc2: added support for IOMMU-aware implementation 
  of dma-mapping calls, unified with CMA coherent dma pool
- implemented changes requested by Minchan Kim: added more checks for
  vmarea->flags & VM_DMA, renamed some variables, removed obsole locks,
  squashed find_vm_area() exporting patch into the main redesign patch 

v2: http://thread.gmane.org/gmane.linux.kernel.mm/78563
- added support for atomic allocations (served from preallocated pool)
- minor cleanup here and there
- rebased onto v3.4-rc7

v1: http://thread.gmane.org/gmane.linux.kernel.mm/76703
- initial version

Patch summary:

Marek Szyprowski (3):
  mm: vmalloc: use const void * for caller argument
  mm: vmalloc: add VM_DMA flag to indicate areas used by dma-mapping
  ARM: dma-mapping: remove custom consistent dma region

 Documentation/kernel-parameters.txt |    2 +-
 arch/arm/include/asm/dma-mapping.h  |    2 +-
 arch/arm/mm/dma-mapping.c           |  503 ++++++++++++-----------------------
 include/linux/vmalloc.h             |   10 +-
 mm/vmalloc.c                        |   31 ++-
 5 files changed, 206 insertions(+), 342 deletions(-)


linux-arm-kernel mailing list

[Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [PDAs]     [Linux]     [Linux MIPS]     [Yosemite Campsites]     [Photos]

Follow linuxarm on Twitter