kernel - Preliminary vm_page hash lookup (2), cleanups, page wiring
* Correct a bug in vm.fault_quick operation. Soft-busied pages cannot
be safely wired or unwired. This fixes a wire/unwire race related panic.
* Optimize vm_page_unhold() to normally not have to obtain any spin-locks
at all, since related pages are almost never in the PQ_HOLD VM page
queue. This leaves open a minor race condition where pages with
a hold_count of 0 can accumulate in PQ_HOLD.
* Add vm_page_scan_hold() to the pageout daemon. Unconditionally scan
PQ_HOLD very slowly to remove any pages whos hold_count is 0.
* REFACTOR PAGE WIRING. Wiring vm_page's no longer removes them from
whatever paging queue they are on. Instead, proactively remove
such pages from the queue only when we need to (typically in the
pageout code).
* Remove unused PV_FLAG_VMOBJECT.
* Fix missing atomic-op in pc64/x86_64/efirt.c
* Do not use m->md.pv_list for pagetable pages. It is now only used for
terminal pages.
* Properly initialize pv_flags to 0 when a pv_entry is allocated.
* Add debugging to detect managed pmap_enter()s without an object.
* Conditionalize the setting of PG_MAPPED and PG_WRITEABLE in the
pmap code to avoid unnecessary cpu cache mastership changes.
* Move assertions in vm_pageout.c that could trigger improperly due
to a race.