diff options
| author | ad <ad@NetBSD.org> | 2020-03-08 15:01:50 +0000 |
|---|---|---|
| committer | ad <ad@NetBSD.org> | 2020-03-08 15:01:50 +0000 |
| commit | 5cdc4ea5ec94d12a1c7f350d06ad50c9ca89c19f (patch) | |
| tree | 30e6f8ac229cc63b4d1e23a72718b40e7ae0438f | |
| parent | bfab1fe2ffed2e4d8500c5fc0c4f6e47dc7ffb30 (diff) | |
Don't zap the non-pdpolicy bits in pg->pqflags.
| -rw-r--r-- | sys/uvm/uvm_pdpolicy_clock.c | 14 |
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 |
