HomeFreeBSD

vm_object: allow paging_in_progress to be acquired after object termination.

Description

vm_object: allow paging_in_progress to be acquired after object termination.

The vm objects are type-stable, and can be accessed even after the
last reference is dropped, or in case of vnode objects, after vgone()
destroyed it as well.

Stop asserting that pip == 0 after vm_object_terminate() waited for
existing owners to drop it, we only want to drain them before setting
OBJ_DEAD flag. Also stop asserting pip == 0 in object destructor.

Update comments explaining the interaction between paging_in_progress
and termination.

Reviewed by: markj
Tested by: pho
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D25968

Details

Provenance
kibAuthored on
Reviewer
markj
Differential Revision
D25968: VMIO read
Parents
rS364285: Atomically update vm_object vnp_size, where atomic is available.
Branches
Unknown
Tags
Unknown