summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorad <ad@NetBSD.org>2020-03-08 15:01:50 +0000
committerad <ad@NetBSD.org>2020-03-08 15:01:50 +0000
commit5cdc4ea5ec94d12a1c7f350d06ad50c9ca89c19f (patch)
tree30e6f8ac229cc63b4d1e23a72718b40e7ae0438f
parentbfab1fe2ffed2e4d8500c5fc0c4f6e47dc7ffb30 (diff)
Don't zap the non-pdpolicy bits in pg->pqflags.
-rw-r--r--sys/uvm/uvm_pdpolicy_clock.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/uvm/uvm_pdpolicy_clock.c b/sys/uvm/uvm_pdpolicy_clock.c
index d908e0bb966..de9a04f6a05 100644
--- a/sys/uvm/uvm_pdpolicy_clock.c
+++ b/sys/uvm/uvm_pdpolicy_clock.c
@@ -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 @@ uvmpdpol_pagedeactivate_locked(struct vm_page *pg)
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_pageactivate_locked(struct vm_page *pg)
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 @@ uvmpdpol_pagedequeue_locked(struct vm_page *pg)
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