summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2002-08-10 23:53:59 +0000
committeralc <alc@FreeBSD.org>2002-08-10 23:53:59 +0000
commitf8185309a43bd48cf704e206f5da1e1e0d4588d7 (patch)
tree465686d392f917db1b83856c6fc485f80321b6aa /sys
parentfe8b5e270e3f64045f1d22797e60b4f08ecefd2a (diff)
downloadFreeBSD-src-f8185309a43bd48cf704e206f5da1e1e0d4588d7.zip
FreeBSD-src-f8185309a43bd48cf704e206f5da1e1e0d4588d7.tar.gz
o Lock page queue accesses by vm_page_activate().
Diffstat (limited to 'sys')
-rw-r--r--sys/vm/vm_pageout.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c
index 08319b8..e38b86d 100644
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -749,7 +749,9 @@ rescan0:
*/
} else if (((m->flags & PG_REFERENCED) == 0) &&
(actcount = pmap_ts_referenced(m))) {
+ vm_page_lock_queues();
vm_page_activate(m);
+ vm_page_unlock_queues();
m->act_count += (actcount + ACT_ADVANCE);
continue;
}
@@ -763,7 +765,9 @@ rescan0:
if ((m->flags & PG_REFERENCED) != 0) {
vm_page_flag_clear(m, PG_REFERENCED);
actcount = pmap_ts_referenced(m);
+ vm_page_lock_queues();
vm_page_activate(m);
+ vm_page_unlock_queues();
m->act_count += (actcount + ACT_ADVANCE + 1);
continue;
}
OpenPOWER on IntegriCloud