Page MenuHomeFreeBSD

vm_fault.c: Introduce 'vm_fault_wire'
Needs ReviewPublic

Authored by bnovkov on Thu, Oct 15, 6:21 PM.
Tags
None
Referenced Files
F176097160: D60751.id189985.diff
Fri, Oct 16, 2:14 AM
F176096847: D60751.diff
Fri, Oct 16, 2:09 AM
F176096577: D60751.diff
Fri, Oct 16, 2:06 AM
Subscribers

Details

Reviewers
markj
kib
Summary

This change introduces 'vm_fault_wire', a memory wiring routine with
a fast path for objects implementing the own 'pgo_populate' pager
methods. The fast path (vm_fault_wire_quick) uses 'vm_pager_populate'
to preallocate pages for the entire map entry instead of using 'vm_page_grab'
for each 0-order pager. Unlike the slow path, it is superpage-aware and
will avoid extraneous page lookup when processing pages whose psind
is larger than zero. This change is mostly aimed at speeding up memory
wiring in the bhyve hypervisor.

Test Plan

See the test plan in D60752.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 78245
Build 75128: arc lint + arc unit