HomeFreeBSD

Previously we did not support invalid pages in default objects. This means

Description

Previously we did not support invalid pages in default objects. This means
that if fault fails to progress and needs to restart the loop it must free
the page it is working on and allocate again on restart. Resolve the few
places that need to be modified to support this condition and simply
deactivate the page. Presently, we only permit this when fault restarts
for busy contention. This has an added benefit of removing some object
trylocking in this case.

While here consolidate some page cleanup logic into fault_page_free() and
fault_page_release() to reduce redundant code and automate some teardown.

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D22653

Details

Provenance
jeffAuthored on Dec 15 2019, 4:08 AM
Parents
rGa80817786433: Add a deferred free mechanism for freeing swap space that does not require
Branches
Unknown
Tags
Unknown