[PATCH/RFCv3 0/6] The Contiguous Memory Allocator framework

FUJITA Tomonori fujita.tomonori at lab.ntt.co.jp
Fri Aug 20 02:57:51 EDT 2010


On Fri, 20 Aug 2010 08:38:10 +0200
**UNKNOWN CHARSET** <m.nazarewicz at samsung.com> wrote:

> On Fri, 20 Aug 2010 05:12:50 +0200, FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp> wrote:
> >> 1. Integration on API level meaning that some kind of existing API is used
> >>     instead of new cma_*() calls.  CMA adds notion of devices and memory
> >>     types which is new to all the other APIs (coherent has notion of devices
> >>     but that's not enough).  This basically means that no existing API can be
> >>     used for CMA.  On the other hand, removing notion of devices and memory
> >>     types would defeat the whole purpose of CMA thus destroying the solution
> >>     that CMA provides.
> >
> > You can create something similar to the existing API for memory
> > allocator.
> 
> That may be tricky.  cma_alloc() takes four parameters each of which is
> required for CMA.  No other existing set of API uses all those arguments.
> This means, CMA needs it's own, somehow unique API.  I don't quite see
> how the APIs may be unified or "made similar".  Of course, I'm gladly
> accepting suggestions.

Have you even tried to search 'blk_kmalloc' on google? I wrote
"similar to the existing API', not "reuse the existing API".


> >> 2. Reuse of memory pools meaning that memory reserved by CMA can then be
> >>     used by other allocation mechanisms.  This is of course possible.  For
> >>     instance coherent could easily be implemented as a wrapper to CMA.
> >>     This is doable and can be done in the future after CMA gets more
> >>     recognition.
> >>
> >> 3. Reuse of algorithms meaning that allocation algorithms used by other
> >>     allocators will be used with CMA regions.  This is doable as well and
> >>     can be done in the future.
> >
> > Well, why can't we do the above before the inclusion?
> 
> Because it's quite a bit of work and instead of diverting my attention I'd
> prefer to make CMA as good as possible and then integrate it with other
> subsystems.  Also, adding the integration would change the patch from being
> 4k lines to being like 40k lines.

4k to 40k? I'm not sure. But If I see something like the following, I
suspect that there is a better way to integrate this into the existing
infrastructure.

mm/cma-best-fit.c                   |  407 +++++++++++++++



More information about the linux-arm-kernel mailing list