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)
Tue, Sep 15, 2:34 AM
Unknown Object (File)
Wed, Sep 9, 10:30 AM
Unknown Object (File)
Thu, Sep 3, 3:47 AM
Unknown Object (File)
Thu, Sep 3, 3:39 AM
Unknown Object (File)
Aug 16 2026, 3:33 AM
Unknown Object (File)
Aug 13 2026, 12:28 AM
Unknown Object (File)
Aug 12 2026, 7:24 PM
Unknown Object (File)
Aug 11 2026, 11:17 PM
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.