kernel - vm_page BUSY handling, change vm_page_cache() API, maybe fix seg-fault
* All vm_page_deactivate() calls now operate with the caller holding
the page PG_BUSY or the page known not to be busy. Reorder several
cases where a vm_page is unbusied prior to calling deactivate.
* vm_page_cache() now expected the vm_page to be PG_BUSY and will cache
the page and clear the bit.
* Fix a race in vm_pageout_page_free() which calls vm_object_reference()
with an unbusied vm_page, then proceeds to busy and free the page.
The problem is that vm_object_reference() can block on vmobj_token.
This may fix the x86-64 seg-fault issue. Or it may not (throws up hands).
* Remove incorrect KKASSERT which was causing bogus panics.
13 files changed: