HomeFreeBSD

Previously, swap_pager_copy() freed swap blocks one at at time, via

Description

Previously, swap_pager_copy() freed swap blocks one at at time, via
swp_pager_meta_ctl(), with no opportunity to recognize freeing of
consecutive blocks and free fewer block ranges. To open that opportunity,
this change removes the SWM_FREE option from swp_pager_meta_ctl(), and
compels the caller to do the freeing when a valid block address is returned.
In swap_pager_copy(), these frees are aggregated, so that a sequence of them
can be done at one time.

The only other caller to swp_pager_meta_ctl() that passed SWM_FREE,
swp_pager_unswapped(), is also modified to handle its single free
explicitly.

Submitted by: Doug Moore <dougm@rice.edu>
Reviewed by: kib (an earlier version)
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D13290

Details

Provenance
alcAuthored on
Reviewer
kib
Differential Revision
D13290: allow frees to aggregate in swap_pager_copy
Parents
rS327409: MFC r323235,r323236,r324789,r324863:
Branches
Unknown
Tags
Unknown