It has some advantages, such as no slop on power-of-two allocations,
and theoretically less overhead on small allocations.
In my testing, I find that it is approximately the same speed as
the current kmalloc (< 2% faster) and that the lower theoretical
overhead is not reached in practice (1.5% more in one 70000 allocation
test). However, from what I can tell from the sources, most of
the larger allocations (which would have suffered most from
power-of-two allocation slop) are in the network file systems, to
which I have no access.
For those that may be interested, I also have an instrumented version
of the current kmalloc and a set of user-mode testing programs that
make evaluating changes quite a bit easier.
The kmalloc implementation, not to mention the testing programs,
are a bit big to post here (20K uncompressed), so I've made the
whole thing available at
ftp://atheist.tamu.edu/pub/richard/kmalloc-test.tar.gz
I appreciate any time people can devote to giving this a look-see.
r~