Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 03 May 2026 19:59:07 +0000
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 067cfac2e7bd - main - bufspace_wait(): only try to help bufdaemon if there is a chance to help
Message-ID:  <69f7a90b.40713.1ec9d773@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=067cfac2e7bd9dc857fb6cc504c01b0249bcd1b7

commit 067cfac2e7bd9dc857fb6cc504c01b0249bcd1b7
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-04-22 05:09:34 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-05-03 19:58:37 +0000

    bufspace_wait(): only try to help bufdaemon if there is a chance to help
    
    Only call buf_flush() if there are some dirty buffers belonging to the
    vnode we are allocating the buffer for.  Otherwise the bd dirty queue
    scan cannot find anything and it makes no sense to spend CPU doing it.
---
 sys/kern/vfs_bio.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index 8f47a7abbc5e..675f6fb4e526 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -727,7 +727,8 @@ bufspace_wait(struct bufdomain *bd, struct vnode *vp, int gbflags,
 	BD_LOCK(bd);
 	while (bd->bd_wanted) {
 		if (vp != NULL && vp->v_type != VCHR &&
-		    (td->td_pflags & TDP_BUFNEED) == 0) {
+		    (td->td_pflags & TDP_BUFNEED) == 0 &&
+		    vp->v_bufobj.bo_dirty.bv_cnt > 0) {
 			BD_UNLOCK(bd);
 			/*
 			 * getblk() is called with a vnode locked, and


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69f7a90b.40713.1ec9d773>