svn commit: r192801 - user/kmacy/releng_7_2_fcs/sys/vm
Kip Macy
kmacy at FreeBSD.org
Tue May 26 08:39:45 UTC 2009
Author: kmacy
Date: Tue May 26 08:39:44 2009
New Revision: 192801
URL: http://svn.freebsd.org/changeset/base/192801
Log:
simplify vm_pageout_clean by having it always drop the vm page lock
- add asserts to help track down a missing unlock
Modified:
user/kmacy/releng_7_2_fcs/sys/vm/vm_page.c
user/kmacy/releng_7_2_fcs/sys/vm/vm_pageout.c
Modified: user/kmacy/releng_7_2_fcs/sys/vm/vm_page.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/vm/vm_page.c Tue May 26 08:21:59 2009 (r192800)
+++ user/kmacy/releng_7_2_fcs/sys/vm/vm_page.c Tue May 26 08:39:44 2009 (r192801)
@@ -1284,6 +1284,7 @@ vm_pageq_remove_locked(vm_page_t m)
void
vm_pageq_remove(vm_page_t m)
{
+ mtx_assert(&vm_page_queue_mtx, MA_NOTOWNED);
vm_page_lock_queues();
vm_pageq_remove_locked(m);
vm_page_unlock_queues();
Modified: user/kmacy/releng_7_2_fcs/sys/vm/vm_pageout.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/vm/vm_pageout.c Tue May 26 08:21:59 2009 (r192800)
+++ user/kmacy/releng_7_2_fcs/sys/vm/vm_pageout.c Tue May 26 08:39:44 2009 (r192801)
@@ -303,6 +303,7 @@ vm_pageout_clean(m)
*/
if ((m->hold_count != 0) ||
((m->busy != 0) || (m->oflags & VPO_BUSY))) {
+ vm_page_unlock(m);
return 0;
}
vm_page_io_start(m);
@@ -784,6 +785,7 @@ rescan0:
addl_page_shortage++;
continue;
}
+
if (vm_page_trylock(m) == 0) {
VM_OBJECT_UNLOCK(object);
addl_page_shortage++;
@@ -1040,8 +1042,7 @@ rescan0:
if (vm_pageout_clean(m) != 0) {
--page_shortage;
--maxlaunder;
- } else
- vm_page_unlock(m);
+ }
vm_page_lock_queues();
unlock_and_continue:
VM_OBJECT_UNLOCK(object);
@@ -1338,6 +1339,7 @@ vm_pageout_page_stats()
m = next;
continue;
}
+ vm_page_lock_assert(m, MA_NOTOWNED);
if (vm_page_trylock(m) == 0) {
VM_OBJECT_UNLOCK(object);
m = next;
More information about the svn-src-user
mailing list