HomeFreeBSD

Switching from a global hash table to per-vm_object radix tries for mapping

Description

Switching from a global hash table to per-vm_object radix tries for mapping
vm_object page indices to on-disk swap space (r322913) has changed the
synchronization requirements for a couple swap pager functions. Whereas
before a read lock on the vm object sufficed because of the global mutex
on the hash table, a write lock on the vm object may now be required. In
particular, calls to vm_pager_page_unswapped() now require a write lock on
the vm_object. Consequently, vm_fault()'s fast path cannot call
vm_pager_page_unswapped(). The swap space will have to be released at a
later point.

Reviewed by: kib, markj
X-MFC with: r322913
Differential Revision: https://reviews.freebsd.org/D12134

Details

Provenance
alcAuthored on
Reviewer
kib
Differential Revision
D12134: Update vm object lock assertions in the swap pager
Parents
rS322969: Add ability to label md(4) devices.
Branches
Unknown
Tags
Unknown