Author: attilio Date: Tue Jun 4 22:47:01 2013 New Revision: 251397 URL: http://svnweb.freebsd.org/changeset/base/251397
Log: In vm_object_split(), busy and consequently unbusy the pages only when swap_pager_copy() is invoked, otherwise there is no reason to do so. This will eliminate the necessity to busy pages most of the times. Sponsored by: EMC / Isilon storage division Reviewed by: alc Modified: head/sys/vm/vm_object.c Modified: head/sys/vm/vm_object.c ============================================================================== --- head/sys/vm/vm_object.c Tue Jun 4 22:32:33 2013 (r251396) +++ head/sys/vm/vm_object.c Tue Jun 4 22:47:01 2013 (r251397) @@ -1390,7 +1390,8 @@ retry: vm_page_rename(m, new_object, idx); vm_page_unlock(m); /* page automatically made dirty by rename and cache handled */ - vm_page_busy(m); + if (orig_object->type == OBJT_SWAP) + vm_page_busy(m); } if (orig_object->type == OBJT_SWAP) { /* @@ -1398,6 +1399,8 @@ retry: * and new_object's locks are released and reacquired. */ swap_pager_copy(orig_object, new_object, offidxstart, 0); + TAILQ_FOREACH(m, &new_object->memq, listq) + vm_page_wakeup(m); /* * Transfer any cached pages from orig_object to new_object. @@ -1413,8 +1416,6 @@ retry: new_object); } VM_OBJECT_WUNLOCK(orig_object); - TAILQ_FOREACH(m, &new_object->memq, listq) - vm_page_wakeup(m); VM_OBJECT_WUNLOCK(new_object); entry->object.vm_object = new_object; entry->offset = 0LL; _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"