It would be nice if the allocator could accept a function which gets called when there is not enough memory to allocate something, and that function can then get pages of memory (such as mapping some phys frames or requesting memory from the kernel).