summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_glue.c
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2014-06-16 18:15:27 +0000
committerattilio <attilio@FreeBSD.org>2014-06-16 18:15:27 +0000
commit2802c525ad1ace89e32dfadc6121f67fcdd9132f (patch)
tree84adf2de9d1ba827bc45bbdc6f1e76f230319e94 /sys/vm/vm_glue.c
parent4b840db0c44a4742d5d824c47328d0b1c89de43b (diff)
downloadFreeBSD-src-2802c525ad1ace89e32dfadc6121f67fcdd9132f.zip
FreeBSD-src-2802c525ad1ace89e32dfadc6121f67fcdd9132f.tar.gz
- Modify vm_page_unwire() and vm_page_enqueue() to directly accept
the queue where to enqueue pages that are going to be unwired. - Add stronger checks to the enqueue/dequeue for the pagequeues when adding and removing pages to them. Of course, for unmanaged pages the queue parameter of vm_page_unwire() will be ignored, just as the active parameter today. This makes adding new pagequeues quicker. This change effectively modifies the KPI. __FreeBSD_version will be, however, bumped just when the full cache of free pages will be evicted. Sponsored by: EMC / Isilon storage division Reviewed by: alc Tested by: pho
Diffstat (limited to 'sys/vm/vm_glue.c')
-rw-r--r--sys/vm/vm_glue.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c
index 7d00097..d48de9e 100644
--- a/sys/vm/vm_glue.c
+++ b/sys/vm/vm_glue.c
@@ -418,7 +418,7 @@ vm_thread_stack_dispose(vm_object_t ksobj, vm_offset_t ks, int pages)
if (m == NULL)
panic("vm_thread_dispose: kstack already missing?");
vm_page_lock(m);
- vm_page_unwire(m, 0);
+ vm_page_unwire(m, PQ_INACTIVE);
vm_page_free(m);
vm_page_unlock(m);
}
@@ -507,7 +507,7 @@ vm_thread_swapout(struct thread *td)
panic("vm_thread_swapout: kstack already missing?");
vm_page_dirty(m);
vm_page_lock(m);
- vm_page_unwire(m, 0);
+ vm_page_unwire(m, PQ_INACTIVE);
vm_page_unlock(m);
}
VM_OBJECT_WUNLOCK(ksobj);
OpenPOWER on IntegriCloud