From acada7aef070273772e7100bf95104d8ff44bbb9 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sat, 3 Oct 2015 17:04:52 +0000 Subject: [PATCH] Perform a single batched update to the object's paging-in-progress count rather than updating it for each page. --- sys/kern/vfs_bio.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index 0fab0009bc5..70dc565fae3 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -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); }