Hi Axel, I expected there would be some problems with this
1) I don't recall using anything C++ specific, other than the .cpp extension - and I didn't realize we were trying to keep C++ out of the kernel. 2) I thought it could be useful in other areas, so I made it independent of the net_buffer implementation. 3) True, but this was something I planned on changing later 4) Again, this could be changed as necessary, eventually computed on the fly, for low memory systems and such. 5) It didn't seem necessary, as the datastore manages this internally.
Now, looking at what a slab allocator really is (which I should have done before I started writing this), some of the stuff you originally did is making more sense. (As I told myself before the ci, "If it's terrible, the old version is still there on svn")