diff options
Diffstat (limited to 'sys/vm/vm_fault.c')
-rw-r--r-- | sys/vm/vm_fault.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 28e23fa..2e51181 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -402,13 +402,15 @@ RetryFault:; vm_pageq_remove_nowakeup(fs.m); - if (VM_PAGE_RESOLVEQUEUE(fs.m, queue) == PQ_CACHE && - vm_page_count_severe()) { - vm_page_activate(fs.m); - vm_page_unlock_queues(); - unlock_and_deallocate(&fs); - VM_WAITPFAULT; - goto RetryFault; + if (VM_PAGE_RESOLVEQUEUE(fs.m, queue) == PQ_CACHE) { + cnt.v_reactivated++; + if (vm_page_count_severe()) { + vm_page_activate(fs.m); + vm_page_unlock_queues(); + unlock_and_deallocate(&fs); + VM_WAITPFAULT; + goto RetryFault; + } } vm_page_unlock_queues(); @@ -1335,6 +1337,6 @@ vm_fault_additional_pages(m, rbehind, rahead, marray, reqpage) marray[i] = rtm; } - /* return number of bytes of pages */ + /* return number of pages */ return i; } |