kernel - Improve contiguous DMA memory allocation
* vm_page_alloc_contig() will use vm_page_alloc() for degenerate
requests instead of the free page reserve. This case often
occurs when called from kmem_alloc_attr().
* vm_contig_pg_alloc() will scan the VM page queues first for
unrestricted memory requests, falling back to vm_page_alloc_contig()
if this fails.
vm_contig_pg_alloc() will call vm_page_alloc_contig() first if the
memory request has an address range restriction, falling back to
a VM page queue scan if it fails.
* This should hopefully reduce instances where device drivers probed
prior to e.g. NATA eat up all available low-memory DMA space,
leaving none for NATA (or other drivers) that might need low-memory
DMA space.