summaryrefslogtreecommitdiff
path: root/sys/powerpc
diff options
context:
space:
mode:
authorMatthew Dillon <dillon@FreeBSD.org>1999-02-08 00:37:36 +0000
committerMatthew Dillon <dillon@FreeBSD.org>1999-02-08 00:37:36 +0000
commitfaa273d5c2e06048ce741c593c78dc821d4e1ac6 (patch)
treedd4dcbf74e2ca1ca137d03de3dc9cab317bf5259 /sys/powerpc
parent5313b05fe0b8eab9ac6b4c505e7e16b94ce465cb (diff)
Notes
Diffstat (limited to 'sys/powerpc')
-rw-r--r--sys/powerpc/aim/vm_machdep.c13
-rw-r--r--sys/powerpc/powerpc/vm_machdep.c13
2 files changed, 14 insertions, 12 deletions
diff --git a/sys/powerpc/aim/vm_machdep.c b/sys/powerpc/aim/vm_machdep.c
index ed102b191f5f..b7bef7da443c 100644
--- a/sys/powerpc/aim/vm_machdep.c
+++ b/sys/powerpc/aim/vm_machdep.c
@@ -38,7 +38,7 @@
*
* from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91
* Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
- * $Id: vm_machdep.c,v 1.7 1998/12/30 10:38:58 dfr Exp $
+ * $Id: vm_machdep.c,v 1.8 1999/01/26 02:49:51 julian Exp $
*/
/*
* Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
@@ -469,8 +469,8 @@ vm_page_zero_idle()
if (try_mplock()) {
#endif
s = splvm();
- m = vm_page_list_find(PQ_FREE, free_rover);
- if (m != NULL) {
+ m = vm_page_list_find(PQ_FREE, free_rover, FALSE);
+ if (m != NULL && (m->flags & PG_ZERO) == 0) {
--(*vm_page_queues[m->queue].lcnt);
TAILQ_REMOVE(vm_page_queues[m->queue].pl, m, pageq);
m->queue = PQ_NONE;
@@ -483,14 +483,15 @@ vm_page_zero_idle()
get_mplock();
#endif
(void)splvm();
- m->queue = PQ_ZERO + m->pc;
+ vm_page_flag_set(m, PG_ZERO);
+ m->queue = PQ_FREE + m->pc;
++(*vm_page_queues[m->queue].lcnt);
- TAILQ_INSERT_HEAD(vm_page_queues[m->queue].pl, m,
+ TAILQ_INSERT_TAIL(vm_page_queues[m->queue].pl, m,
pageq);
- free_rover = (free_rover + PQ_PRIME3) & PQ_L2_MASK;
++vm_page_zero_count;
++cnt_prezero;
}
+ free_rover = (free_rover + PQ_PRIME3) & PQ_L2_MASK;
splx(s);
#ifdef SMP
rel_mplock();
diff --git a/sys/powerpc/powerpc/vm_machdep.c b/sys/powerpc/powerpc/vm_machdep.c
index ed102b191f5f..b7bef7da443c 100644
--- a/sys/powerpc/powerpc/vm_machdep.c
+++ b/sys/powerpc/powerpc/vm_machdep.c
@@ -38,7 +38,7 @@
*
* from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91
* Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
- * $Id: vm_machdep.c,v 1.7 1998/12/30 10:38:58 dfr Exp $
+ * $Id: vm_machdep.c,v 1.8 1999/01/26 02:49:51 julian Exp $
*/
/*
* Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
@@ -469,8 +469,8 @@ vm_page_zero_idle()
if (try_mplock()) {
#endif
s = splvm();
- m = vm_page_list_find(PQ_FREE, free_rover);
- if (m != NULL) {
+ m = vm_page_list_find(PQ_FREE, free_rover, FALSE);
+ if (m != NULL && (m->flags & PG_ZERO) == 0) {
--(*vm_page_queues[m->queue].lcnt);
TAILQ_REMOVE(vm_page_queues[m->queue].pl, m, pageq);
m->queue = PQ_NONE;
@@ -483,14 +483,15 @@ vm_page_zero_idle()
get_mplock();
#endif
(void)splvm();
- m->queue = PQ_ZERO + m->pc;
+ vm_page_flag_set(m, PG_ZERO);
+ m->queue = PQ_FREE + m->pc;
++(*vm_page_queues[m->queue].lcnt);
- TAILQ_INSERT_HEAD(vm_page_queues[m->queue].pl, m,
+ TAILQ_INSERT_TAIL(vm_page_queues[m->queue].pl, m,
pageq);
- free_rover = (free_rover + PQ_PRIME3) & PQ_L2_MASK;
++vm_page_zero_count;
++cnt_prezero;
}
+ free_rover = (free_rover + PQ_PRIME3) & PQ_L2_MASK;
splx(s);
#ifdef SMP
rel_mplock();