lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 10 Oct 2011 14:07:31 +0200
From:	Maxime Coquelin <maxime.coquelin-nonst@...ricsson.com>
To:	Marek Szyprowski <m.szyprowski@...sung.com>
Cc:	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"linux-arm-kernel@...ts.infradead.org" 
	<linux-arm-kernel@...ts.infradead.org>,
	"linux-media@...r.kernel.org" <linux-media@...r.kernel.org>,
	"linux-mm@...ck.org" <linux-mm@...ck.org>,
	"linaro-mm-sig@...ts.linaro.org" <linaro-mm-sig@...ts.linaro.org>,
	Daniel Walker <dwalker@...eaurora.org>,
	Russell King <linux@....linux.org.uk>,
	Arnd Bergmann <arnd@...db.de>,
	Jonathan Corbet <corbet@....net>, Mel Gorman <mel@....ul.ie>,
	Chunsang Jeong <chunsang.jeong@...aro.org>,
	Michal Nazarewicz <mina86@...a86.com>,
	Dave Hansen <dave@...ux.vnet.ibm.com>,
	Jesse Barker <jesse.barker@...aro.org>,
	Kyungmin Park <kyungmin.park@...sung.com>,
	Ankita Garg <ankita@...ibm.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
	<benjamin.gaignard@...aro.org>,
	frq09524 <ludovic.barre@...ricsson.com>,
	<vincent.guittot@...aro.org>
Subject: Re: [Linaro-mm-sig] [PATCHv16 0/9] Contiguous Memory Allocator

On 10/06/2011 03:54 PM, Marek Szyprowski wrote:
> Welcome everyone again,
>
> Once again I decided to post an updated version of the Contiguous Memory
> Allocator patches.
>
> This version provides mainly a bugfix for a very rare issue that might
> have changed migration type of the CMA page blocks resulting in dropping
> CMA features from the affected page block and causing memory allocation
> to fail. Also the issue reported by Dave Hansen has been fixed.
>
> This version also introduces basic support for x86 architecture, what
> allows wide testing on KVM/QEMU emulators and all common x86 boxes. I
> hope this will result in wider testing, comments and easier merging to
> mainline.
>
> I've also dropped an examplary patch for s5p-fimc platform device
> private memory declaration and added the one from real life. CMA device
> private memory regions are defined for s5p-mfc device to let it allocate
> buffers from two memory banks.
>
> ARM integration code has not been changed since last version, it
> provides implementation of all the ideas that has been discussed during

Hello Marek,

     We are currently testing CMA (v16) on Snowball platform.
     This feature is very promising, thanks for pushing it!

     During our stress tests, we encountered some problems :

     1) Contiguous allocation lockup:
         When system RAM is full of Anon pages, if we try to allocate a 
contiguous buffer greater than the min_free value, we face a 
dma_alloc_from_contiguous lockup.
         The expected result would be dma_alloc_from_contiguous() to fail.
         The problem is reproduced systematically on our side.

     2) Contiguous allocation fail:
         We have developed a small driver and a shell script to 
allocate/release contiguous buffers.
         Sometimes, dma_alloc_from_contiguous() fails to allocate the 
contiguous buffer (about once every 30 runs).
         We have 270MB Memory passed to the kernel in our configuration, 
and the CMA pool is 90MB large.
         In this setup, the overall memory is either free or full of 
reclaimable pages.


     For now, we didn't had time to investigate further theses problems.
     Have you already faced this kind of issues?
     Could someone testing CMA on other boards confirm/infirm theses 
problems?

Best regards,
Maxime



> Patches in this patchset:
>
>    mm: move some functions from memory_hotplug.c to page_isolation.c
>    mm: alloc_contig_freed_pages() added
>
>      Code "stolen" from Kamezawa.  The first patch just moves code
>      around and the second provide function for "allocates" already
>      freed memory.
>
>    mm: alloc_contig_range() added
>
>      This is what Kamezawa asked: a function that tries to migrate all
>      pages from given range and then use alloc_contig_freed_pages()
>      (defined by the previous commit) to allocate those pages.
>
>    mm: MIGRATE_CMA migration type added
>    mm: MIGRATE_CMA isolation functions added
>
>      Introduction of the new migratetype and support for it in CMA.
>      MIGRATE_CMA works similar to ZONE_MOVABLE expect almost any
>      memory range can be marked as one.
>
>    mm: cma: Contiguous Memory Allocator added
>
>      The code CMA code. Manages CMA contexts and performs memory
>      allocations.
>
>    X86: integrate CMA with DMA-mapping subsystem
>    ARM: integrate CMA with dma-mapping subsystem
>
>      Main clients of CMA framework. CMA serves as a alloc_pages()
>      replacement.
>
>    ARM: Samsung: use CMA for 2 memory banks for s5p-mfc device
>
>      Use CMA device private memory regions instead of custom solution
>      based on memblock_reserve() + dma_declare_coherent().
>
>
> Patch summary:
>
> KAMEZAWA Hiroyuki (2):
>    mm: move some functions from memory_hotplug.c to page_isolation.c
>    mm: alloc_contig_freed_pages() added
>
> Marek Szyprowski (4):
>    drivers: add Contiguous Memory Allocator
>    ARM: integrate CMA with DMA-mapping subsystem
>    ARM: Samsung: use CMA for 2 memory banks for s5p-mfc device
>    X86: integrate CMA with DMA-mapping subsystem
>
> Michal Nazarewicz (3):
>    mm: alloc_contig_range() added
>    mm: MIGRATE_CMA migration type added
>    mm: MIGRATE_CMA isolation functions added
>
>   arch/Kconfig                          |    3 +
>   arch/arm/Kconfig                      |    2 +
>   arch/arm/include/asm/dma-contiguous.h |   16 ++
>   arch/arm/include/asm/mach/map.h       |    1 +
>   arch/arm/mm/dma-mapping.c             |  362 +++++++++++++++++++++++++------
>   arch/arm/mm/init.c                    |    8 +
>   arch/arm/mm/mm.h                      |    3 +
>   arch/arm/mm/mmu.c                     |   29 ++-
>   arch/arm/plat-s5p/dev-mfc.c           |   51 +----
>   arch/x86/Kconfig                      |    1 +
>   arch/x86/include/asm/dma-contiguous.h |   13 +
>   arch/x86/include/asm/dma-mapping.h    |    4 +
>   arch/x86/kernel/pci-dma.c             |   18 ++-
>   arch/x86/kernel/pci-nommu.c           |    8 +-
>   arch/x86/kernel/setup.c               |    2 +
>   drivers/base/Kconfig                  |   79 +++++++
>   drivers/base/Makefile                 |    1 +
>   drivers/base/dma-contiguous.c         |  386 +++++++++++++++++++++++++++++++++
>   include/asm-generic/dma-contiguous.h  |   27 +++
>   include/linux/device.h                |    4 +
>   include/linux/dma-contiguous.h        |  106 +++++++++
>   include/linux/mmzone.h                |   57 +++++-
>   include/linux/page-isolation.h        |   53 ++++-
>   mm/Kconfig                            |    8 +-
>   mm/compaction.c                       |   10 +
>   mm/memory_hotplug.c                   |  111 ----------
>   mm/page_alloc.c                       |  317 +++++++++++++++++++++++++--
>   mm/page_isolation.c                   |  131 +++++++++++-
>   28 files changed, 1522 insertions(+), 289 deletions(-)
>   create mode 100644 arch/arm/include/asm/dma-contiguous.h
>   create mode 100644 arch/x86/include/asm/dma-contiguous.h
>   create mode 100644 drivers/base/dma-contiguous.c
>   create mode 100644 include/asm-generic/dma-contiguous.h
>   create mode 100644 include/linux/dma-contiguous.h
>
> --
> 1.7.1.569.g6f426
>
>
> _______________________________________________
> Linaro-mm-sig mailing list
> Linaro-mm-sig@...ts.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-mm-sig

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ