kernel - split the pbuf subsystem into two (kva and non-kva)
Most pbufs do not require kva reservations. Split the API to provide
pbufs without kva reservations out of a much larger pool of pbufs, fixing
deadlock issues with the DM subsystem.
Note in particular that the hammer reblocker can eat upwards of 5000 pbufs
when operating on multi-layered DM-based storage, which blows away the
256 pbufs normally available with kva reservations that the old API had.
* Getpbuf() / trypbuf() now return pbufs without KVA reservations.
* Add getpbuf_kva() and trypbuf_kva() to get pbufs with KVA reservations.
* Fixes pbuf deadlocks in the low level I/O subsystem, particularly DM
crypt, stripe, and mirror.