linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [RFC] genalloc != generic DEVICE memory allocator
@ 2005-12-21 17:23 Andrey Volkov
  2005-12-22  8:38 ` Pantelis Antoniou
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Andrey Volkov @ 2005-12-21 17:23 UTC (permalink / raw)
  To: jes; +Cc: Andrew Morton, linux-kernel, linuxppc-embedded

Hello Jes and all

I try to use your allocator (gen_pool_xxx), idea of which
is a cute nice thing. But current implementation of it is
inappropriate for a _device_ (aka onchip, like framebuffer) memory
allocation, by next reasons:

 1) Device memory is expensive resource by access time and/or size cost.
    So we couldn't use (usually) this memory for the free blocks lists.
 2) Device memory usually have special requirement of access to it
    (alignment/special insn). So we couldn't use part of allocated
    blocks for some control structures (this problem solved in your
    implementation, it's common remark)
 3) Obvious (IMHO) workflow of mem. allocator look like:
 	- at startup time, driver allocate some big
	  (almost) static mem. chunk(s) for a control/data structures.
        - during work of the device, driver allocate many small
	  mem. blocks with almost identical size.
    such behavior lead to degeneration of buddy method and
    transform it to the first/best fit method (with long seek
    by the free node list).
 4) The simple binary buddy method is far away from perfect for a device
    due to a big internal fragmentation. Especially for a
    network/mfd devices, for which, size of allocated data very
    often is not a power of 2.

I start to modify your code to satisfy above demands,
but firstly I wish to know your, or somebody else, opinion.

Especially I will very happy if somebody have and could
provide to all, some device specific memory usage statistics.

-- 
Regards
Andrey Volkov

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

end of thread, other threads:[~2005-12-23 10:59 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-12-21 17:23 [RFC] genalloc != generic DEVICE memory allocator Andrey Volkov
2005-12-22  8:38 ` Pantelis Antoniou
2005-12-22 13:48   ` Andrey Volkov
2005-12-22 14:15     ` Pantelis Antoniou
2005-12-22 15:44       ` Andrey Volkov
2005-12-22 16:09         ` Pantelis Antoniou
     [not found] ` <43A9B2F1.8090402@246tNt.com>
2005-12-22 13:41   ` Andrey Volkov
2005-12-22 15:37 ` Jes Sorensen
2005-12-22 18:18   ` Andrey Volkov
2005-12-22 18:33     ` Pantelis Antoniou
2005-12-23  7:38       ` Andrey Volkov
2005-12-23  7:46         ` Pantelis Antoniou
2005-12-23 10:17           ` Andrey Volkov
2005-12-23 10:59     ` Jes Sorensen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).