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

Mark Johnston markj at FreeBSD.org
Fri Mar 23 14:59:31 UTC 2018


Author: markj
Date: Fri Mar 23 14:59:30 2018
New Revision: 331427
URL: https://svnweb.freebsd.org/changeset/base/331427

Log:
  Address a couple of FIXMEs.
  
  Note that PGA_DEQUEUE can only be set with the page lock held.

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	Fri Mar 23 14:39:34 2018	(r331426)
+++ user/markj/vm-playground/sys/vm/vm_page.c	Fri Mar 23 14:59:30 2018	(r331427)
@@ -2549,8 +2549,8 @@ retry:
 				    vm_reserv_size(level)) - pa);
 #endif
 			} else if (object->memattr == VM_MEMATTR_DEFAULT &&
-			    /* XXX need to check PGA_DEQUEUE */
-			    m->queue != PQ_NONE && !vm_page_busied(m)) {
+			    m->queue != PQ_NONE &&
+			    (m->aflags & PGA_DEQUEUE) == 0 && !vm_page_busied(m)) {
 				/*
 				 * The page is allocated but eligible for
 				 * relocation.  Extend the current run by one
@@ -2701,8 +2701,9 @@ retry:
 				error = EINVAL;
 			else if (object->memattr != VM_MEMATTR_DEFAULT)
 				error = EINVAL;
-			else if (m->queue != PQ_NONE && !vm_page_busied(m)) {
-				/* XXX need to check PGA_DEQUEUE */
+			else if (m->queue != PQ_NONE &&
+			    (m->aflags & PGA_DEQUEUE) == 0 &&
+			    !vm_page_busied(m)) {
 				KASSERT(pmap_page_get_memattr(m) ==
 				    VM_MEMATTR_DEFAULT,
 				    ("page %p has an unexpected memattr", m));


More information about the svn-src-user mailing list