Pre-allocate pages in DMA-reachable region to ensure progress in the swapper.
Currently swap encryption is not done in place and some architectures need to
bounce pages into a DMA-reachable region for I/Os, for that uvm_swap_io() needs
to allocate at most 64K to write a swap cluster to disk. Pre-allocate such
amount of memory to be sure the page daemon can make progress in OOM situation.
Also introduce a sleeping point to wait for the previous asynchronous I/O
holding the pre-allocated pages, there's no point in building clusters if no
progress can be made.
ok beck@, kettenis@