diff options
author | kib <kib@FreeBSD.org> | 2010-05-06 04:57:33 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2010-05-06 04:57:33 +0000 |
commit | 99fafb0cededdbb037eba3a3a0b21ce36481d832 (patch) | |
tree | b0708fbfab991d9936b1dbd4c8788203ed87c301 /sys/vm/vm_pageout.h | |
parent | 76fc3e2dd04efb46c3b0c9d67c4287f017df3c40 (diff) | |
download | FreeBSD-src-99fafb0cededdbb037eba3a3a0b21ce36481d832.zip FreeBSD-src-99fafb0cededdbb037eba3a3a0b21ce36481d832.tar.gz |
Add a helper function vm_pageout_page_lock(), similar to tegge'
vm_pageout_fallback_object_lock(), to obtain the page lock
while having page queue lock locked, and still maintain the
page position in a queue.
Use the helper to lock the page in the pageout daemon and contig launder
iterators instead of skipping the page if its lock is contested.
Skipping locked pages easily causes pagedaemon or launder to not make a
progress with page cleaning.
Proposed and reviewed by: alc
Diffstat (limited to 'sys/vm/vm_pageout.h')
-rw-r--r-- | sys/vm/vm_pageout.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/vm/vm_pageout.h b/sys/vm/vm_pageout.h index 15ca570..4759dd7 100644 --- a/sys/vm/vm_pageout.h +++ b/sys/vm/vm_pageout.h @@ -104,5 +104,6 @@ extern void vm_waitpfault(void); boolean_t vm_pageout_fallback_object_lock(vm_page_t, vm_page_t *); int vm_pageout_flush(vm_page_t *, int, int); void vm_pageout_oom(int shortage); +boolean_t vm_pageout_page_lock(vm_page_t, vm_page_t *); #endif #endif /* _VM_VM_PAGEOUT_H_ */ |