git: 15e1d8f69bcc - stable/13 - Fix inverse sleep logic in buf_daemon().
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 23 Jan 2022 19:59:51 UTC
The branch stable/13 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=15e1d8f69bcce73566bceae106c19b5394c6f88a commit 15e1d8f69bcce73566bceae106c19b5394c6f88a Author: Alexander Motin <mav@FreeBSD.org> AuthorDate: 2022-01-16 00:32:36 +0000 Commit: Alexander Motin <mav@FreeBSD.org> CommitDate: 2022-01-23 19:57:35 +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 (cherry picked from commit e76c0108990b52a25f548cba4c0f1b8db59c6b8b) --- 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 dc470512a066..5c5cfc8cd5d5 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -3455,7 +3455,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.