Date: Tue, 20 May 2025 08:09:57 GMT From: Doug Moore <dougm@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: c8ffb90b1dd3 - main - Revert "vm_page: drop mpred from grab_valid_iter()" Message-ID: <202505200809.54K89vuZ088558@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=c8ffb90b1dd391b88b67f66028833876497d5d78 commit c8ffb90b1dd391b88b67f66028833876497d5d78 Author: Doug Moore <dougm@FreeBSD.org> AuthorDate: 2025-05-20 08:08:43 +0000 Commit: Doug Moore <dougm@FreeBSD.org> CommitDate: 2025-05-20 08:08:43 +0000 Revert "vm_page: drop mpred from grab_valid_iter()" This reverts commit 0f941203ac513f5ed3cf30038ac9e7a062acf1b7. Removing the unread variable also removed a side-effect of computing a value to assign to that variable, and that side-effect was critical. --- sys/vm/vm_page.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 85a39aa8c22e..ea6fbdbc6386 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -4880,7 +4880,7 @@ int vm_page_grab_valid_iter(vm_page_t *mp, vm_object_t object, vm_pindex_t pindex, int allocflags, struct pctrie_iter *pages) { - vm_page_t m; + vm_page_t m, mpred; vm_page_t ma[VM_INITIAL_PAGEIN]; int after, i, pflags, rv; @@ -4924,6 +4924,7 @@ retrylookup: *mp = NULL; return (VM_PAGER_FAIL); } else { + mpred = vm_radix_iter_lookup_lt(pages, pindex); m = vm_page_alloc_iter(object, pindex, pflags, pages); if (m == NULL) { if (!vm_pager_can_alloc_page(object, pindex)) { @@ -4940,7 +4941,7 @@ retrylookup: after = MIN(after, VM_INITIAL_PAGEIN); after = MIN(after, allocflags >> VM_ALLOC_COUNT_SHIFT); after = MAX(after, 1); - ma[0] = m; + ma[0] = mpred = m; pctrie_iter_reset(pages); for (i = 1; i < after; i++) { m = vm_radix_iter_lookup(pages, pindex + i); @@ -4951,6 +4952,7 @@ retrylookup: break; } else if (vm_page_any_valid(m) || !vm_page_tryxbusy(m)) break; + mpred = ma[i] = m; } after = i; vm_object_pip_add(object, after);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202505200809.54K89vuZ088558>