The branch main has been updated by mav:

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

commit e76c0108990b52a25f548cba4c0f1b8db59c6b8b
Author:     Alexander Motin <m...@freebsd.org>
AuthorDate: 2022-01-16 00:32:36 +0000
Commit:     Alexander Motin <m...@freebsd.org>
CommitDate: 2022-01-16 00:32:36 +0000

    Fix inverse sleep logic in buf_daemon().
    
    Before commit 3cec5c77d617 buf_daemon() went to longer 1s sleep if
    numdirtybuffers <= lodirtybuffers.  After that commit new condition
    !BIT_EMPTY(BUF_DOMAINS, &bdlodirty) got opposite -- true when one
    or more more domains is above lodirtybuffers.  As result, on freshly
    booted system with no dirty buffers buf_daemon() wakes up 10 times
    per second and probably only 1 time per second when there is actual
    work to do.
    
    MFC after:      1 week
    Reviewed by:    kib, markj
    Tested by:      pho
    Differential revision:  https://reviews.freebsd.org/D33890
---
 sys/kern/vfs_bio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c
index acd16ecdf3fe..8e79943e3fee 100644
--- a/sys/kern/vfs_bio.c
+++ b/sys/kern/vfs_bio.c
@@ -3464,7 +3464,7 @@ buf_daemon()
                 * to avoid endless loops on unlockable buffers.
                 */
                mtx_lock(&bdlock);
-               if (!BIT_EMPTY(BUF_DOMAINS, &bdlodirty)) {
+               if (BIT_EMPTY(BUF_DOMAINS, &bdlodirty)) {
                        /*
                         * We reached our low water mark, reset the
                         * request and sleep until we are needed again.

Reply via email to