Hi, here comes a patch series for an idea I have in mind for quite some time: break up the nucleus heap layer so that it can support different allocation schemes. Motivated was this idea by the great TLSF allocator by Miguel Masmano et al.
I once played with TLSF in userspace as a malloc replacement for RT apps, and I wondered if we shouldn't make use of it as well in the nucleus. It's most beautiful property is its strict O(1) complexity in my eyes, but it seems to provide even more qualities: less fragmentation, less overhead, maybe even better performance. I haven't done any thorough analysis on those advantages (I'm counting on Miguel and others to prove them ;) ), only stability tests over the last weeks and a simple comparisons of the overhead. With 8 user-space tasks, a few mutexes, 8 RTDM sockets, and likely some other stuff allocated I get e.g. these usage numbers: bsdalloc: size=524288:used=17720:pagesz=512 tlsfalloc: size=524288:used=14036:pagesz=512 This patch series now first tries to abstract a common interface for heap allocators. Those allocators can be statically selected at compile time. As the second step it adds latest TLSF version 2.2.0 as an alternative to BSD. Default remains BSD for now. TLSF is currently limited to 32-bit archs, but 64-bit support is on the roadmap according to Miguel. He kindly helped me with preparing the TLSF patch for Xenomai usage. Thanks to him at this point! Jan
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core