svn commit: r331556 - user/markj/vm-playground/sys/vm

Mark Johnston markj at FreeBSD.org
Mon Mar 26 16:06:04 UTC 2018


Author: markj
Date: Mon Mar 26 16:06:04 2018
New Revision: 331556
URL: https://svnweb.freebsd.org/changeset/base/331556

Log:
  Fix some accounting errors in vm_page_alloc_pages_domain_after().

Modified:
  user/markj/vm-playground/sys/vm/vm_page.c

Modified: user/markj/vm-playground/sys/vm/vm_page.c
==============================================================================
--- user/markj/vm-playground/sys/vm/vm_page.c	Mon Mar 26 15:22:25 2018	(r331555)
+++ user/markj/vm-playground/sys/vm/vm_page.c	Mon Mar 26 16:06:04 2018	(r331556)
@@ -1968,15 +1968,15 @@ again:
 		    VM_FREEPOOL_DIRECT;
 		vm_domain_free_lock(vmd);
 		do {
-			i = vm_phys_alloc_npages(domain, pool, &m,
-			    avail - nalloc);
+			i = vm_phys_alloc_npages(domain, pool, &m, avail);
 			if (i == 0) {
-				vm_domain_freecnt_inc(vmd, avail - nalloc);
+				vm_domain_freecnt_inc(vmd, avail);
 				break;
 			}
+			avail -= i;
 			for (; i > 0; i--)
 				ma[nalloc++] = m++;
-		} while (nalloc < avail);
+		} while (avail > 0);
 		vm_domain_free_unlock(vmd);
 	}
 	if (nalloc == 0 || (nalloc < nreq && (req & VM_ALLOC_WAITOK) != 0)) {


More information about the svn-src-user mailing list