All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 -next 0/9] CMA: generalize CMA reserved area management code
@ 2014-06-16  5:40 ` Joonsoo Kim
  0 siblings, 0 replies; 120+ messages in thread
From: Joonsoo Kim @ 2014-06-16  5:40 UTC (permalink / raw)
  To: Andrew Morton, Aneesh Kumar K.V, Marek Szyprowski, Michal Nazarewicz
  Cc: Minchan Kim, Russell King - ARM Linux, Greg Kroah-Hartman,
	Paolo Bonzini, Gleb Natapov, Alexander Graf,
	Benjamin Herrenschmidt, Paul Mackerras, linux-mm, linux-kernel,
	linux-arm-kernel, kvm, kvm-ppc, linuxppc-dev, Zhang Yanfei,
	Joonsoo Kim

Currently, there are two users on CMA functionality, one is the DMA
subsystem and the other is the KVM on powerpc. They have their own code
to manage CMA reserved area even if they looks really similar.
>From my guess, it is caused by some needs on bitmap management. Kvm side
wants to maintain bitmap not for 1 page, but for more size. Eventually it
use bitmap where one bit represents 64 pages.

When I implement CMA related patches, I should change those two places
to apply my change and it seem to be painful to me. I want to change
this situation and reduce future code management overhead through
this patch.

This change could also help developer who want to use CMA in their
new feature development, since they can use CMA easily without
copying & pasting this reserved area management code.

v3:
  - Simplify old patch 1(log format fix) and move it to the end of patchset.
  - Patch 2: Pass aligned base and size to dma_contiguous_early_fixup()
  - Patch 5: Add some accessor functions to pass aligned base and size to
  dma_contiguous_early_fixup() function
  - Patch 5: Move MAX_CMA_AREAS definition to cma.h
  - Patch 6: Add CMA region zeroing to PPC KVM's CMA alloc function
  - Patch 8: put 'base' ahead of 'size' in cma_declare_contiguous()
  - Remaining minor fixes are noted in commit description of each one

v2:
  - Although this patchset looks very different with v1, the end result,
  that is, mm/cma.c is same with v1's one. So I carry Ack to patch 6-7.

This patchset is based on linux-next 20140610.

Patch 1-4 prepare some features to cover PPC KVM's requirements.
Patch 5-6 generalize CMA reserved area management code and change users
to use it.
Patch 7-9 clean-up minor things.

Joonsoo Kim (9):
  DMA, CMA: fix possible memory leak
  DMA, CMA: separate core CMA management codes from DMA APIs
  DMA, CMA: support alignment constraint on CMA region
  DMA, CMA: support arbitrary bitmap granularity
  CMA: generalize CMA reserved area management functionality
  PPC, KVM, CMA: use general CMA reserved area management framework
  mm, CMA: clean-up CMA allocation error path
  mm, CMA: change cma_declare_contiguous() to obey coding convention
  mm, CMA: clean-up log message

 arch/arm/mm/dma-mapping.c            |    1 +
 arch/powerpc/kvm/book3s_64_mmu_hv.c  |    4 +-
 arch/powerpc/kvm/book3s_hv_builtin.c |   19 +-
 arch/powerpc/kvm/book3s_hv_cma.c     |  240 ------------------------
 arch/powerpc/kvm/book3s_hv_cma.h     |   27 ---
 drivers/base/Kconfig                 |   10 -
 drivers/base/dma-contiguous.c        |  210 ++-------------------
 include/linux/cma.h                  |   21 +++
 include/linux/dma-contiguous.h       |   11 +-
 mm/Kconfig                           |   11 ++
 mm/Makefile                          |    1 +
 mm/cma.c                             |  335 ++++++++++++++++++++++++++++++++++
 12 files changed, 397 insertions(+), 493 deletions(-)
 delete mode 100644 arch/powerpc/kvm/book3s_hv_cma.c
 delete mode 100644 arch/powerpc/kvm/book3s_hv_cma.h
 create mode 100644 include/linux/cma.h
 create mode 100644 mm/cma.c

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 120+ messages in thread

end of thread, other threads:[~2014-07-18  7:33 UTC | newest]

Thread overview: 120+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-16  5:40 [PATCH v3 -next 0/9] CMA: generalize CMA reserved area management code Joonsoo Kim
2014-06-16  5:40 ` Joonsoo Kim
2014-06-16  5:40 ` Joonsoo Kim
2014-06-16  5:40 ` Joonsoo Kim
2014-06-16  5:40 ` Joonsoo Kim
2014-06-16  5:40 ` [PATCH v3 -next 1/9] DMA, CMA: fix possible memory leak Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  6:27   ` Minchan Kim
2014-06-16  6:27     ` Minchan Kim
2014-06-16  6:27     ` Minchan Kim
2014-06-16  6:27     ` Minchan Kim
2014-06-16  6:27     ` Minchan Kim
2014-06-17  1:33     ` Joonsoo Kim
2014-06-17  1:33       ` Joonsoo Kim
2014-06-17  1:33       ` Joonsoo Kim
2014-06-17  1:33       ` Joonsoo Kim
2014-06-17  1:33       ` Joonsoo Kim
2014-06-16  5:40 ` [PATCH v3 -next 2/9] DMA, CMA: separate core CMA management codes from DMA APIs Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40 ` [PATCH v3 -next 3/9] DMA, CMA: support alignment constraint on CMA region Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40 ` [PATCH v3 -next 4/9] DMA, CMA: support arbitrary bitmap granularity Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-18 20:48   ` Andrew Morton
2014-06-18 20:48     ` Andrew Morton
2014-06-18 20:48     ` Andrew Morton
2014-06-18 20:48     ` Andrew Morton
2014-06-18 20:48     ` Andrew Morton
2014-06-19  8:18     ` Joonsoo Kim
2014-06-19  8:18       ` Joonsoo Kim
2014-06-19  8:18       ` Joonsoo Kim
2014-06-19  8:18       ` Joonsoo Kim
2014-06-19  8:18       ` Joonsoo Kim
2014-06-16  5:40 ` [PATCH v3 -next 5/9] CMA: generalize CMA reserved area management functionality Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-07-17  8:52   ` Marek Szyprowski
2014-07-17  8:52     ` Marek Szyprowski
2014-07-17  8:52     ` Marek Szyprowski
2014-07-17  8:52     ` Marek Szyprowski
2014-07-17  8:52     ` Marek Szyprowski
2014-07-17  9:36     ` [PATCH] CMA: generalize CMA reserved area management functionality (fixup) Marek Szyprowski
2014-07-17  9:36       ` Marek Szyprowski
2014-07-17  9:36       ` Marek Szyprowski
2014-07-17  9:36       ` Marek Szyprowski
2014-07-17  9:36       ` Marek Szyprowski
2014-07-17 22:06       ` Andrew Morton
2014-07-17 22:06         ` Andrew Morton
2014-07-17 22:06         ` Andrew Morton
2014-07-17 22:06         ` Andrew Morton
2014-07-17 22:06         ` Andrew Morton
2014-07-18  7:33         ` Marek Szyprowski
2014-07-18  7:33           ` Marek Szyprowski
2014-07-18  7:33           ` Marek Szyprowski
2014-07-18  7:33           ` Marek Szyprowski
2014-07-18  7:33           ` Marek Szyprowski
2014-06-16  5:40 ` [PATCH v3 -next 6/9] PPC, KVM, CMA: use general CMA reserved area management framework Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40 ` [PATCH v3 -next 7/9] mm, CMA: clean-up CMA allocation error path Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40 ` [PATCH v3 -next 8/9] mm, CMA: change cma_declare_contiguous() to obey coding convention Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40 ` [PATCH v3 -next 9/9] mm, CMA: clean-up log message Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  5:40   ` Joonsoo Kim
2014-06-16  9:11 ` [PATCH v3 -next 0/9] CMA: generalize CMA reserved area management code Marek Szyprowski
2014-06-16  9:11   ` Marek Szyprowski
2014-06-16  9:11   ` Marek Szyprowski
2014-06-16  9:11   ` Marek Szyprowski
2014-06-16  9:11   ` Marek Szyprowski
2014-06-17  1:25   ` Joonsoo Kim
2014-06-17  1:25     ` Joonsoo Kim
2014-06-17  1:25     ` Joonsoo Kim
2014-06-17  1:25     ` Joonsoo Kim
2014-06-17  1:25     ` Joonsoo Kim
2014-06-18 20:51     ` Andrew Morton
2014-06-18 20:51       ` Andrew Morton
2014-06-18 20:51       ` Andrew Morton
2014-06-18 20:51       ` Andrew Morton
2014-06-18 20:51       ` Andrew Morton
2014-06-24  7:52       ` Joonsoo Kim
2014-06-24  7:52         ` Joonsoo Kim
2014-06-24  7:52         ` Joonsoo Kim
2014-06-24  7:52         ` Joonsoo Kim
2014-06-24  7:52         ` Joonsoo Kim
2014-06-25 12:33       ` Marek Szyprowski
2014-06-25 12:33         ` Marek Szyprowski
2014-06-25 12:33         ` Marek Szyprowski
2014-06-25 12:33         ` Marek Szyprowski
2014-06-25 12:33         ` Marek Szyprowski
2014-06-25 20:04         ` Andrew Morton
2014-06-25 20:04           ` Andrew Morton
2014-06-25 20:04           ` Andrew Morton
2014-06-25 20:04           ` Andrew Morton
2014-06-25 20:04           ` Andrew Morton

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.