RIOT-OS/RIOT — pull request #669 by Kijewski (2014-02-09 23:33:10+00:00)
Title: Add TLSF (two level segregated fit) malloc PKG

See http://tlsf.baisoku.org/:

> TLSF (two level segregated fit) is a relatively new memory
allocator designed for embedded systems. It boasts constant
time O(1) malloc/free response time and a 4-byte block
overhead. Though it typically is slightly slower than other
allocators such as dlmalloc, it has no worst-case behavior.

> The original implementation, which comes alongside the white
paper, is distributed under the GNU GPL/LGPL. The code found
here is an original implementation, released into the public
domain, therefore is not subject to any licensing restrictions.

> Features:
- O(1) cost for malloc, free, realloc, memalign
- Extremely low overhead per allocation (4 bytes)
- Low overhead per pool (~3kB)
- Low fragmentation
- Compiles to only a few kB of code and data

>Caveats:
- Currently, assumes architecture can make 4-byte aligned accesses
- Not designed to be thread safe; the user must provide this

>Known Issues:
Due to the internal block structure size and the implementation
details of tlsf_memalign, there is worst-case behavior when requesting
small (<16 byte) blocks aligned to 8-byte boundaries. Overuse of memalign
will generally increase fragmentation, but this particular case will leave
lots of unusable "holes" in the heap. The solution would be to internally
align all blocks to 8 bytes, but this will require significantl changes
to the implementation. Contact me if you are interested.

Meant to solve RT ^ malloc problems like in #253.
The patch file mostly deletes debug code.