Currently VM_ALLOC_ZERO is advisory and callers must remember to zero
the pages themselves if necessary, which is most of the time. This is
error-prone, especially considering that vm_page_alloc() and
vm_page_grab() interpret VM_ALLOC_ZERO differently, and it complicates
callers. The main benefit appears to be an optimization for the fault
handler such that it can release the object lock before zeroing the
page. It also provides a minor improvement for platforms without a
direct map, since if they map the returned page anyway they can zero the
returned memory without having to use pmap_zero_page().
I propose zeroing pages in the allocator and handling
performance-sensitive cases more surgically. A follow-up commit will
modify consumers.