RE: [PATCH] powerpc:Fix rheap alignment problem

From: Li Yang-r58472 <hidden>
Date: 2006-07-03 06:49:35
Also in: lkml

Buddy allocation is good in general, but doesn't mean it fits best in any condition.  In this case for managing DPRAM/MURAM in Freescale soc, in most case we only put buffer descriptor in DPRAM.  That means the alloc/free only occurs on initialization and unloading of the driver.  So there are not supposed to be a lot of free operations.  Buddy allocation will cause more internal fragment, in my humble opinion.  And a free-list allocation is best fit in this case.


Best Regards,
Leo
-----Original Message-----
From: linuxppc-dev-bounces+leoli=freescale.com@ozlabs.org
[mailto:linuxppc-dev-bounces+leoli=freescale.com@ozlabs.org] On Behalf Of
Pantelis Antoniou
Sent: Sunday, July 02, 2006 1:18 PM
To: Rune Torgersen
Cc: linuxppc-dev list; Paul Mackerras; linux-kernel@vger.kernel.org
Subject: Re: [PATCH] powerpc:Fix rheap alignment problem

On Sunday 02 July 2006 06:54, Rune Torgersen wrote:
quoted
From: Pantelis Antoniou
Sent: Sat 7/1/2006 9:50 AM
quoted
Since genalloc is the blessed linux thing it might be best to use that &
remove
quoted
quoted
rheap completely. Oh well...
Two problems with genalloc that I can see (for CPM programming):
1) (minor) Does not have a way to specify alignment (genalloc does it for
you)
quoted
2) (major problerm, at least for me) Does not have a way to allocate a specified
address in the pool.
quoted
2 is needed esp when programming MCC drivers, since a lot of the datastructures
must be in DP RAM _and_ be in a specific spot. And if you cannot tell the
allocator that I am using a specific address, then the allocator might very
well give somebody else that portion of RAM. The only solution without a fixed
allocator is to allocate ALL memory in the DP RAM and use your own allocator.
quoted
Yeah, that too.

Too bad there are no main tree drivers like that, but they do exist.

One could conceivably hack genalloc to do that, but will end up with
something complex too.

BTW, there are other uEngine based architectures with similar alignment
requirements.

So in conclusion, for the in-tree drivers genalloc is sufficient as an cpm
memory allocator.
For some out of tree drivers, it is not.

Pantelis
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help