diff options
author | kib <kib@FreeBSD.org> | 2014-07-24 16:29:44 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2014-07-24 16:29:44 +0000 |
commit | d7d6313cf44fa12148b5cee3cb0542287af7a37f (patch) | |
tree | 671bf425a15fe4f80c0c080b0d8ce7545ed6f149 /sys/vm/vm_reserv.c | |
parent | bc8d80ff4e8a4a3106923968524f11648f134483 (diff) | |
download | FreeBSD-src-d7d6313cf44fa12148b5cee3cb0542287af7a37f.zip FreeBSD-src-d7d6313cf44fa12148b5cee3cb0542287af7a37f.tar.gz |
MFC r267213 (by alc):
Add a page size field to struct vm_page.
Approved by: alc
Diffstat (limited to 'sys/vm/vm_reserv.c')
-rw-r--r-- | sys/vm/vm_reserv.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/vm/vm_reserv.c b/sys/vm/vm_reserv.c index 6ca5642..7511a33 100644 --- a/sys/vm/vm_reserv.c +++ b/sys/vm/vm_reserv.c @@ -229,6 +229,11 @@ vm_reserv_depopulate(vm_reserv_t rv) if (rv->inpartpopq) { TAILQ_REMOVE(&vm_rvq_partpop, rv, partpopq); rv->inpartpopq = FALSE; + } else { + KASSERT(rv->pages->psind == 1, + ("vm_reserv_depopulate: reserv %p is already demoted", + rv)); + rv->pages->psind = 0; } rv->popcnt--; if (rv->popcnt == 0) { @@ -278,6 +283,8 @@ vm_reserv_populate(vm_reserv_t rv) ("vm_reserv_populate: reserv %p is free", rv)); KASSERT(rv->popcnt < VM_LEVEL_0_NPAGES, ("vm_reserv_populate: reserv %p is already full", rv)); + KASSERT(rv->pages->psind == 0, + ("vm_reserv_populate: reserv %p is already promoted", rv)); if (rv->inpartpopq) { TAILQ_REMOVE(&vm_rvq_partpop, rv, partpopq); rv->inpartpopq = FALSE; @@ -286,7 +293,8 @@ vm_reserv_populate(vm_reserv_t rv) if (rv->popcnt < VM_LEVEL_0_NPAGES) { rv->inpartpopq = TRUE; TAILQ_INSERT_TAIL(&vm_rvq_partpop, rv, partpopq); - } + } else + rv->pages->psind = 1; } /* |