This patch adds a reservation-aware replacement for uma_small_alloc.
The vm_reserv_uma_small_{alloc, free} routines use unmanaged reservations to allocate 0-order pages for UMA zones.
Those reservations are placed in dedicated, per-domain UMA small_alloc queues that keep track of partially populated reservations and reservations used for NOFREE allocations.
The allocator falls back to vm_page_alloc_noobj_domain in case of memory pressure.