svn commit: r329925 - user/jeff/numa/sys/vm

Jeff Roberson jeff at FreeBSD.org
Sat Feb 24 20:12:02 UTC 2018


Author: jeff
Date: Sat Feb 24 20:12:01 2018
New Revision: 329925
URL: https://svnweb.freebsd.org/changeset/base/329925

Log:
  Acquire the page lock when freeing a page we failed to allocate so that we
  can properly consult reservations.
  
  Reported by:	pho

Modified:
  user/jeff/numa/sys/vm/vm_page.c

Modified: user/jeff/numa/sys/vm/vm_page.c
==============================================================================
--- user/jeff/numa/sys/vm/vm_page.c	Sat Feb 24 20:07:39 2018	(r329924)
+++ user/jeff/numa/sys/vm/vm_page.c	Sat Feb 24 20:12:01 2018	(r329925)
@@ -1864,7 +1864,9 @@ found:
 			m->oflags = VPO_UNMANAGED;
 			m->busy_lock = VPB_UNBUSIED;
 			/* Don't change PG_ZERO. */
+			vm_page_lock(m);
 			vm_page_free_toq(m);
+			vm_page_unlock(m);
 			if (req & VM_ALLOC_WAITFAIL) {
 				VM_OBJECT_WUNLOCK(object);
 				vm_radix_wait();
@@ -2066,7 +2068,9 @@ found:
 					m->oflags = VPO_UNMANAGED;
 					m->busy_lock = VPB_UNBUSIED;
 					/* Don't change PG_ZERO. */
+					vm_page_lock(m);
 					vm_page_free_toq(m);
+					vm_page_unlock(m);
 				}
 				if (req & VM_ALLOC_WAITFAIL) {
 					VM_OBJECT_WUNLOCK(object);


More information about the svn-src-user mailing list