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, Sep 28, 5:18 AM
Unknown Object (File)
Thu, Sep 25, 7:50 PM
Unknown Object (File)
Sat, Sep 20, 7:00 PM
Unknown Object (File)
Fri, Sep 19, 10:44 AM
Unknown Object (File)
Thu, Sep 18, 11:23 PM
Unknown Object (File)
Sep 9 2025, 10:57 PM
Unknown Object (File)
Sep 3 2025, 9:38 PM
Unknown Object (File)
Aug 26 2025, 9:58 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.