Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Mar 2018 16:06:04 +0000 (UTC)
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r331556 - user/markj/vm-playground/sys/vm
Message-ID:  <201803261606.w2QG64bx082497@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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)) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201803261606.w2QG64bx082497>