svn commit: r288617 - head/sys/kern

Alan Cox alc at FreeBSD.org
Sat Oct 3 17:04:53 UTC 2015


Author: alc
Date: Sat Oct  3 17:04:52 2015
New Revision: 288617
URL: https://svnweb.freebsd.org/changeset/base/288617

Log:
  Perform a single batched update to the object's paging-in-progress count
  rather than updating it for each page.

Modified:
  head/sys/kern/vfs_bio.c

Modified: head/sys/kern/vfs_bio.c
==============================================================================
--- head/sys/kern/vfs_bio.c	Sat Oct  3 16:37:38 2015	(r288616)
+++ head/sys/kern/vfs_bio.c	Sat Oct  3 17:04:52 2015	(r288617)
@@ -2050,11 +2050,10 @@ vfs_vmio_iodone(struct buf *bp)
 		    (intmax_t)foff, (uintmax_t)m->pindex));
 
 		vm_page_sunbusy(m);
-		vm_object_pip_subtract(obj, 1);
 		foff = (foff + PAGE_SIZE) & ~(off_t)PAGE_MASK;
 		iosize -= resid;
 	}
-	vm_object_pip_wakeupn(obj, 0);
+	vm_object_pip_wakeupn(obj, bp->b_npages);
 	VM_OBJECT_WUNLOCK(obj);
 	if (bogus && buf_mapped(bp)) {
 		BUF_CHECK_MAPPED(bp);
@@ -3923,10 +3922,9 @@ vfs_unbusy_pages(struct buf *bp)
 			} else
 				BUF_CHECK_UNMAPPED(bp);
 		}
-		vm_object_pip_subtract(obj, 1);
 		vm_page_sunbusy(m);
 	}
-	vm_object_pip_wakeupn(obj, 0);
+	vm_object_pip_wakeupn(obj, bp->b_npages);
 	VM_OBJECT_WUNLOCK(obj);
 }
 


More information about the svn-src-head mailing list