Page MenuHomeFreeBSD

vm_fault: lookup page ranges for copy_entry
Needs ReviewPublic

Authored by dougm on Jul 5 2025, 12:14 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Nov 16, 7:07 PM
Unknown Object (File)
Sat, Nov 15, 12:53 AM
Unknown Object (File)
Tue, Nov 11, 12:56 AM
Unknown Object (File)
Mon, Nov 10, 9:12 PM
Unknown Object (File)
Mon, Nov 10, 9:12 PM
Unknown Object (File)
Mon, Nov 10, 5:36 PM
Unknown Object (File)
Fri, Oct 31, 6:10 AM
Unknown Object (File)
Thu, Oct 30, 12:13 AM
Subscribers
None

Details

Reviewers
alc
Summary

To reduce the number of searches of the radix trie in vm_fault_copy_entry(), attempt to read a range of pages, rather than a single page at a time.

Test Plan

The only way I have to test this is by running the mlockall.sh stress test, and testing with counters to count calls and cycles spent in vm_fault_copy_entry() indicates that this reduces performance slightly.
Before:
debug.counters.fault_copy_cycles: 66530662
debug.counters.fault_copy_calls: 90

After:
debug.counters.fault_copy_cycles: 68282538
debug.counters.fault_copy_calls: 90

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

dougm requested review of this revision.Jul 5 2025, 12:14 AM
dougm created this revision.
dougm edited the summary of this revision. (Show Details)
dougm edited the test plan for this revision. (Show Details)

Avoid using range-storing arrays too large for the kernel stack.