Call vm_pageout_page_stats() with the page queues lock held.

This commit is contained in:
alc 2004-06-24 04:08:43 +00:00
parent 821a93fb48
commit a96a1d58f7

View File

@ -1243,6 +1243,7 @@ vm_pageout_page_stats()
static int fullintervalcount = 0;
int page_shortage;
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
page_shortage =
(cnt.v_inactive_target + cnt.v_cache_max + cnt.v_free_min) -
(cnt.v_free_count + cnt.v_inactive_count + cnt.v_cache_count);
@ -1250,7 +1251,6 @@ vm_pageout_page_stats()
if (page_shortage <= 0)
return;
vm_page_lock_queues();
pcount = cnt.v_active_count;
fullintervalcount += vm_pageout_stats_interval;
if (fullintervalcount < vm_pageout_full_stats_interval) {
@ -1313,7 +1313,6 @@ vm_pageout_page_stats()
m = next;
}
vm_page_unlock_queues();
}
/*
@ -1437,9 +1436,9 @@ vm_pageout()
error = msleep(&vm_pages_needed, &vm_page_queue_mtx, PVM,
"psleep", vm_pageout_stats_interval * hz);
if (error && !vm_pages_needed) {
vm_page_unlock_queues();
pass = 0;
vm_pageout_page_stats();
vm_page_unlock_queues();
continue;
}
}