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)
Fri, Sep 26, 3:12 AM
Unknown Object (File)
Thu, Sep 25, 10:27 PM
Unknown Object (File)
Mon, Sep 22, 12:20 PM
Unknown Object (File)
Fri, Sep 19, 2:19 PM
Unknown Object (File)
Fri, Sep 19, 2:56 AM
Unknown Object (File)
Thu, Sep 18, 9:06 PM
Unknown Object (File)
Tue, Sep 16, 10:02 PM
Unknown Object (File)
Sep 13 2025, 6:34 AM
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