This patch adds a reservation-based bump allocator inteded for NOFREE pages.
The main goal of this change is to reduce the long-term fragmentation issues caused by NOFREE slabs.
The new routine will hand out NOFREE slabs from a preallocated superpage.
Once an active NOFREE superpage fills up, the routine will try to allocate a new one and discard the old one.
This routine will get invoked whenever VM_ALLOC_NOFREE is passed to vm_page_alloc_noobj or vm_page_alloc.