HomeFreeBSD

vm_page: reset iterator after domainset drops lock

Description

vm_page: reset iterator after domainset drops lock

Restore the WAITFAIL check on resetting the iterator in
vm_page_alloc_domain_iter. It was dropped in 5239a9fb8662 ("vm_page:
alloc_domain_iter") and blamed for a stress test failure. In fact,
the failure was elsewhere, and removing the WAITFAIL check just made
it less likely to be discovered, without fixing it.

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. Failure to
reset the iterator in this case was the real problem.

Reviewed by: alc, markj, kib
Tested by: pho
Differential Revision: https://reviews.freebsd.org/D50392

Details

Provenance
dougmAuthored on May 18 2025, 6:09 PM
Reviewer
alc
Differential Revision
D50392: vm_page: reset iterator after domainset drops lock
Parents
rGd9900b9ea2b2: snd_hda: Add shutdown method
Branches
Unknown
Tags
Unknown