git: 1b5e2d707669 - main - vm_swapout: use VM_RADIX_FOREACH

From: Doug Moore <dougm_at_FreeBSD.org>
Date: Fri, 18 Apr 2025 19:50:34 UTC
The branch main has been updated by dougm:

URL: https://cgit.FreeBSD.org/src/commit/?id=1b5e2d70766989a593709debbf46837a415d168f

commit 1b5e2d70766989a593709debbf46837a415d168f
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2025-04-18 19:48:55 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2025-04-18 19:48:55 +0000

    vm_swapout: use VM_RADIX_FOREACH
    
    Replace the use of TAILQ over the object memq with a VM_RADIX_FOREACH loop.
    
    Reviewed by:    kib
    Differential Revision:  https://reviews.freebsd.org/D49894
---
 sys/vm/vm_swapout.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sys/vm/vm_swapout.c b/sys/vm/vm_swapout.c
index 6f7f584ac25f..f510189d24be 100644
--- a/sys/vm/vm_swapout.c
+++ b/sys/vm/vm_swapout.c
@@ -106,6 +106,7 @@
 #include <vm/vm_pageout.h>
 #include <vm/vm_pager.h>
 #include <vm/vm_phys.h>
+#include <vm/vm_radix.h>
 #include <vm/swap_pager.h>
 #include <vm/vm_extern.h>
 #include <vm/uma.h>
@@ -170,6 +171,7 @@ static void
 vm_swapout_object_deactivate(pmap_t pmap, vm_object_t first_object,
     long desired)
 {
+	struct pctrie_iter pages;
 	vm_object_t backing_object, object;
 	vm_page_t m;
 	bool unmap;
@@ -192,7 +194,8 @@ vm_swapout_object_deactivate(pmap_t pmap, vm_object_t first_object,
 		/*
 		 * Scan the object's entire memory queue.
 		 */
-		TAILQ_FOREACH(m, &object->memq, listq) {
+		vm_page_iter_init(&pages, object);
+		VM_RADIX_FOREACH(m, &pages) {
 			if (pmap_resident_count(pmap) <= desired)
 				goto unlock_return;
 			if (should_yield())