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)
Fri, May 15, 9:46 AM
Unknown Object (File)
Fri, May 15, 7:14 AM
Unknown Object (File)
Thu, May 14, 10:40 PM
Unknown Object (File)
May 12 2026, 3:34 AM
Unknown Object (File)
May 12 2026, 2:24 AM
Unknown Object (File)
May 8 2026, 4:42 AM
Unknown Object (File)
May 8 2026, 2:37 AM
Unknown Object (File)
May 7 2026, 10:15 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.