[RFC PATCH 0/3] add tlsf memory allocator

Antony Pavlov antonynpavlov at gmail.com
Fri Dec 23 06:20:38 EST 2011


On 23 December 2011 14:04, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> On Fri, Dec 09, 2011 at 10:17:29AM +0100, Sascha Hauer wrote:
>> Hi Antony,
>>
>> On Thu, Dec 08, 2011 at 06:03:46PM +0400, Antony Pavlov wrote:
>> > This patch series adds the tlsf memory allocator to barebox.
>> >
>> > TLSF: Two Level Segregated Fit memory allocator implementation.
>> > Written by Matthew Conte (matt at baisoku.org).
>> > Public Domain, no restrictions.
>> >
>> > [RFC PATCH 1/3] import TLSF 2.0
>> > [RFC PATCH 2/3] adapt tlsf for barebox
>> > [RFC PATCH 3/3] add tlsf-based malloc implementation
>>
>> The tlsf code looks really nice. Not that I even tried to understand it,
>> but it looks like one *could* understand the code when he has to (unlike
>> the dlmalloc code). It is also smaller in binary space and it has the
>> great advantage of having memory pools. Memory pools can be useful to
>> seperate the general malloc space from the ramfs malloc space, so that
>> a full ramfs does not crash barebox. It could also be used to implement
>> dma_alloc_coherent().
>>
>> Unfortunately there are two downsides. As the author already says on the
>> webpage it's slightly slower than dlmalloc. That's ok as long we do not
>> store big files in ramfs. The second one is that it needs a
>> memset(pool, 0, size) on initialization. Without it I was not able to
>> test your patches as barebox crashes before even the console was
>> initialized.
>
> This issue goes down to a bug in the console drivers. The most console
> drivers use xmalloc instead of xzalloc which caused unitialized flags.
> Somehow the tlsf allocater triggered this.
>
> So I'm going to merge this series.

Thank you, Sascha!

-- 
Best regards,
  Antony Pavlov



More information about the barebox mailing list