git: 925906a61caf - main - vm_fault: use iterator in populate()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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__));