[PATCH/RFCv3 0/6] The Contiguous Memory Allocator framework
From: fujita.tomonori@lab.ntt.co.jp (FUJITA Tomonori)
Date: 2010-08-20 03:13:52
Also in:
linux-media, linux-mm, lkml
quoted
quoted
We hope this method included at mainline kernel if possible. It's really needed feature for our multimedia frameworks.You got any comments from mm people? Virtually, this adds a new memory allocator implementation that steals some memory from memory allocator during boot process. Its API looks completely different from the API for memory allocator. That doesn't sound appealing to me much. This stuff couldn't be integrated well into memory allocator?What kind of integration do you mean? I see three levels: 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. For example, blk_kmalloc/blk_alloc_pages was proposed as memory allocator API with notion of an address range for allocated memory. It wasn't merged for other reasons though. I don't mean that this is necessary for the inclusion (I'm not the person to ack or nack this). I just expect the similarity of memory allocator 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? Anyway, I think that comments from mm people would be helpful to merge this.