[Linaro-mm-sig] [PATCHv23 13/16] drivers: add Contiguous Memory Allocator

Barry Song 21cnbao at gmail.com
Wed Feb 29 04:53:35 EST 2012


2012/2/23 Marek Szyprowski <m.szyprowski at samsung.com>:
> The Contiguous Memory Allocator is a set of helper functions for DMA
> mapping framework that improves allocations of contiguous memory chunks.
>
> CMA grabs memory on system boot, marks it with MIGRATE_CMA migrate type
> and gives back to the system. Kernel is allowed to allocate only movable
> pages within CMA's managed memory so that it can be used for example for
> page cache when DMA mapping do not use it. On
> dma_alloc_from_contiguous() request such pages are migrated out of CMA
> area to free required contiguous block and fulfill the request. This
> allows to allocate large contiguous chunks of memory at any time
> assuming that there is enough free memory available in the system.
>
> This code is heavily based on earlier works by Michal Nazarewicz.
>
> Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
> Signed-off-by: Michal Nazarewicz <mina86 at mina86.com>
> Acked-by: Arnd Bergmann <arnd at arndb.de>
> Tested-by: Rob Clark <rob.clark at linaro.org>
> Tested-by: Ohad Ben-Cohen <ohad at wizery.com>
> Tested-by: Benjamin Gaignard <benjamin.gaignard at linaro.org>
> Tested-by: Robert Nelson <robertcnelson at gmail.com>

if there is a /proc/cmainfo like /proc/slabinfo, it might be helpful
to people as we can see the usage of CMA clearly.

Thanks
barry



More information about the linux-arm-kernel mailing list