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
F150983382: D51162.diff
Sun, Apr 5, 7:28 AM
Unknown Object (File)
Sat, Apr 4, 5:53 PM
Unknown Object (File)
Sat, Apr 4, 12:45 PM
Unknown Object (File)
Sat, Mar 21, 7:31 PM
Unknown Object (File)
Wed, Mar 11, 5:16 PM
Unknown Object (File)
Wed, Mar 11, 9:27 AM
Unknown Object (File)
Mar 5 2026, 9:43 AM
Unknown Object (File)
Mar 5 2026, 9:30 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.