summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_pageout.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vm/vm_pageout.c')
-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 4ab3930..3b0c7cc 100644
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -1129,6 +1129,7 @@ rescan0:
if ((vm_swap_size < 64 || swap_pager_full) && vm_page_count_min()) {
bigproc = NULL;
bigsize = 0;
+ lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
for (p = allproc.lh_first; p != 0; p = p->p_list.le_next) {
/*
* if this is a system process, skip it
@@ -1158,6 +1159,7 @@ rescan0:
bigsize = size;
}
}
+ lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
if (bigproc != NULL) {
killproc(bigproc, "out of swap space");
bigproc->p_estcpu = 0;
@@ -1442,6 +1444,7 @@ vm_daemon()
* process is swapped out -- deactivate pages
*/
+ lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
for (p = allproc.lh_first; p != 0; p = p->p_list.le_next) {
vm_pindex_t limit, size;
@@ -1480,6 +1483,7 @@ vm_daemon()
&p->p_vmspace->vm_map, limit);
}
}
+ lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
}
}
#endif
OpenPOWER on IntegriCloud