Sun Mar 8 15:01:50 2020 UTC ()
Don't zap the non-pdpolicy bits in pg->pqflags.


(ad)
diff -r1.33 -r1.34 src/sys/uvm/uvm_pdpolicy_clock.c

cvs diff -r1.33 -r1.34 src/sys/uvm/uvm_pdpolicy_clock.c (expand / switch to context diff)
--- src/sys/uvm/uvm_pdpolicy_clock.c 2020/02/23 15:46:43 1.33
+++ src/sys/uvm/uvm_pdpolicy_clock.c 2020/03/08 15:01:50 1.34
@@ -1,8 +1,8 @@
-/*	$NetBSD: uvm_pdpolicy_clock.c,v 1.33 2020/02/23 15:46:43 ad Exp $	*/
+/*	$NetBSD: uvm_pdpolicy_clock.c,v 1.34 2020/03/08 15:01:50 ad Exp $	*/
 /*	NetBSD: uvm_pdaemon.c,v 1.72 2006/01/05 10:47:33 yamt Exp $	*/
 
 /*-
- * Copyright (c) 2019 The NetBSD Foundation, Inc.
+ * Copyright (c) 2019, 2020 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
  * This code is derived from software contributed to The NetBSD Foundation
@@ -98,7 +98,7 @@
 #else /* defined(PDSIM) */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_pdpolicy_clock.c,v 1.33 2020/02/23 15:46:43 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_pdpolicy_clock.c,v 1.34 2020/03/08 15:01:50 ad Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -455,7 +455,8 @@
 		TAILQ_INSERT_TAIL(&pdpol_state.s_inactiveq, pg, pdqueue);
 		pdpol_state.s_inactive++;
 	}
-	pg->pqflags = (pg->pqflags & PQ_INTENT_QUEUED) | PQ_INACTIVE;
+	pg->pqflags &= ~(PQ_ACTIVE | PQ_INTENT_SET);
+	pg->pqflags |= PQ_INACTIVE;
 }
 
 void
@@ -486,7 +487,8 @@
 	uvmpdpol_pagedequeue_locked(pg);
 	TAILQ_INSERT_TAIL(&pdpol_state.s_activeq, pg, pdqueue);
 	pdpol_state.s_active++;
-	pg->pqflags = (pg->pqflags & PQ_INTENT_QUEUED) | PQ_ACTIVE;
+	pg->pqflags &= ~(PQ_INACTIVE | PQ_INTENT_SET);
+	pg->pqflags |= PQ_ACTIVE;
 }
 
 void
@@ -517,7 +519,7 @@
 		KASSERT(pdpol_state.s_inactive > 0);
 		pdpol_state.s_inactive--;
 	}
-	pg->pqflags &= PQ_INTENT_QUEUED;
+	pg->pqflags &= ~(PQ_ACTIVE | PQ_INACTIVE | PQ_INTENT_SET);
 }
 
 void