> No, and it would be hard to do it because you'd need ways to compact > fragmented memory after a lot of mallocs and frees. And then, you'd > need a way to fix the pointers after compacting.
Is it all localised, or is the code scattered across multiple kernel modules? Many years ago I put a lot of effort into a scheme for automatic compacting of memory that worked pretty efficiently on an 8088 without being particularly architecture dependent. When I tried to implement it on NetBSD, it turned out that I did not understand NetBSD particularly well and that was the last of my attempts. The code has long been lost, but I remember the strategy very well, so I could try again. ++L