git: 925906a61caf - main - vm_fault: use iterator in populate()

From: Doug Moore <dougm_at_FreeBSD.org>
Date: Fri, 25 Apr 2025 06:02:44 UTC
The branch main has been updated by dougm:

URL: https://cgit.FreeBSD.org/src/commit/?id=925906a61cafb44df8643e33aa781ba546e92082

commit 925906a61cafb44df8643e33aa781ba546e92082
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2025-04-25 06:01:43 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2025-04-25 06:01:43 +0000

    vm_fault: use iterator in populate()
    
    Use iterators instead of tailq_next pointers in vm_fault_populate().
    
    Reviewed by:    kib
    Differential Revision:  https://reviews.freebsd.org/D50010
---
 sys/vm/vm_fault.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index c096bfaffe73..24fc457adcad 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -497,6 +497,7 @@ vm_fault_populate_cleanup(vm_object_t object, vm_pindex_t first,
 static enum fault_status
 vm_fault_populate(struct faultstate *fs)
 {
+	struct pctrie_iter pages;
 	vm_offset_t vaddr;
 	vm_page_t m;
 	vm_pindex_t map_first, map_last, pager_first, pager_last, pidx;
@@ -623,9 +624,10 @@ vm_fault_populate(struct faultstate *fs)
 		    pager_last);
 		pager_last = map_last;
 	}
-	for (pidx = pager_first, m = vm_page_lookup(fs->first_object, pidx);
+	vm_page_iter_init(&pages, fs->first_object);
+	for (pidx = pager_first, m = vm_radix_iter_lookup(&pages, pidx);
 	    pidx <= pager_last;
-	    pidx += npages, m = TAILQ_NEXT(&m[npages - 1], listq)) {
+	    pidx += npages, m = vm_radix_iter_stride(&pages, npages)) {
 		vaddr = fs->entry->start + IDX_TO_OFF(pidx) - fs->entry->offset;
 		KASSERT(m != NULL && m->pindex == pidx,
 		    ("%s: pindex mismatch", __func__));