git: c8c305ac071a - stable/12 - Fix inverse sleep logic in buf_daemon().
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 23 Jan 2022 20:01:40 UTC
The branch stable/12 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=c8c305ac071a660c34de274cc6fd6daae6a1642d commit c8c305ac071a660c34de274cc6fd6daae6a1642d Author: Alexander Motin <mav@FreeBSD.org> AuthorDate: 2022-01-16 00:32:36 +0000 Commit: Alexander Motin <mav@FreeBSD.org> CommitDate: 2022-01-23 20:01:27 +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 e1fb76ac6d35..f2b8f0b0ba1d 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -3394,7 +3394,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.