This is a step towards being able to free pages without holding the page
lock. Once hold_count/wire_count are merged and the PG_UNHOLDFREE
mechanism is removed, only the vm_page_remove() call will require the
page lock, and this will be dealt with separately.
The approach is simply to add an implementation of
vm_page_dequeue_deferred() which does not assert that the page lock is
held. Formally, we require the page lock in order to set PGA_DEQUEUE.
(The page queue lock is required to clear the flag and assign
m->queue = PQ_NONE.) However, if the page is being freed, we can
assume that no other thread is concurrently scheduling a queue operation
for the page, so we have mutual exclusion anyway.
No functional change intended.