[PATCH] powerpc:Fix rheap alignment problem
Li Yang-r58472
LeoLi at freescale.com
Mon Jul 3 16:49:26 EST 2006
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 at ozlabs.org
> [mailto:linuxppc-dev-bounces+leoli=freescale.com at 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 at vger.kernel.org
> Subject: Re: [PATCH] powerpc:Fix rheap alignment problem
>
> On Sunday 02 July 2006 06:54, Rune Torgersen wrote:
> > From: Pantelis Antoniou
> > Sent: Sat 7/1/2006 9:50 AM
> > >Since genalloc is the blessed linux thing it might be best to use that &
> remove
> > >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)
> > 2) (major problerm, at least for me) Does not have a way to allocate a specified
> address in the pool.
> >
> > 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.
> >
>
> 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 at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
More information about the Linuxppc-dev
mailing list