Hi Andrew, since you don't answered to my post on the commit list, maybe you answer to this one. Beyond what I said there, there are several other issues with your datastore implementation: 1) you're exporting a C++ API from the kernel - we don't do that; we don't force anyone to use C++ in the kernel (yet). C++ should always be optional 2) why did you put it in the kernel anyway? 3) it uses a fixed buffer size and absolutely relies on that; after a datastore is full there is no way out even if there is plenty of memory left 4) furthermore, you waste 4 MB of unpageable kernel memory this way (since this is performance critical memory one could live with that alone, though) 5) and not that it goes down forgotten: you've removed any notion of the physical memory location of a buffer While I'm okay to live with these restrictions for now, I will revert your changes once the networking stack becomes usable and we'll get the slab allocator. For now, I will only move the datastore into the networking stack and out of the kernel. Bye, Axel.