Page MenuHomeFreeBSD

vm_page: reset iterator after domainset drops lock
ClosedPublic

Authored by dougm on May 17 2025, 8:37 AM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Dec 11, 6:38 PM
Unknown Object (File)
Thu, Dec 11, 10:50 AM
Unknown Object (File)
Wed, Dec 10, 9:14 PM
Unknown Object (File)
Tue, Dec 9, 10:23 PM
Unknown Object (File)
Sat, Dec 6, 2:40 AM
Unknown Object (File)
Fri, Nov 28, 3:42 PM
Unknown Object (File)
Mon, Nov 24, 10:12 PM
Unknown Object (File)
Mon, Nov 24, 10:12 PM
Subscribers

Details

Summary

Restore the WAITFAIL check on resetting the iterator in vm_page_alloc_domain_iter. Modify vm_domainset_iter_page_init and vm_domainset_iter_page so that they can take an iterator argument and reset the iterator if vm_domainset_iter_releases and reacquires the object lock.

Test Plan

I repeated the graid1_6.sh stress test several times without failure. Without the ability to reset the iterator in vm_page_alloc_iter, this test fails.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

dougm requested review of this revision.May 17 2025, 8:37 AM
dougm created this revision.

Rather than passing a flag around, can we pass the pctrie iterator to the domainset routines and have them reset the iterator when appropriate?

dougm edited the summary of this revision. (Show Details)
This revision is now accepted and ready to land.May 17 2025, 6:08 PM

I have been running tests with D50392.155617.patch for 13 hours without seeing any issues