Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Mar 2018 18:36:17 +0000 (UTC)
From:      Jeff Roberson <jeff@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r331561 - head/sys/kern
Message-ID:  <201803261836.w2QIaHA3059754@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jeff
Date: Mon Mar 26 18:36:17 2018
New Revision: 331561
URL: https://svnweb.freebsd.org/changeset/base/331561

Log:
  Fix a bug introduced in r329612 that slowly invalidates all clean bufs.
  
  Reported by:	bde
  Reviewed by:	bde
  Sponsored by:	Netflix, Dell/EMC Isilon

Modified:
  head/sys/kern/vfs_bio.c

Modified: head/sys/kern/vfs_bio.c
==============================================================================
--- head/sys/kern/vfs_bio.c	Mon Mar 26 18:34:03 2018	(r331560)
+++ head/sys/kern/vfs_bio.c	Mon Mar 26 18:36:17 2018	(r331561)
@@ -821,7 +821,8 @@ bufspace_daemon(void *arg)
 		 *	which will inefficiently trade bufs with bqrelse
 		 *	until we return to condition 2.
 		 */
-		do {
+		while (bd->bd_bufspace > bd->bd_lobufspace ||
+		    bd->bd_freebuffers < bd->bd_hifreebuffers) {
 			if (buf_recycle(bd, false) != 0) {
 				if (bd_flushall(bd))
 					continue;
@@ -842,9 +843,7 @@ bufspace_daemon(void *arg)
 					BD_UNLOCK(bd);
 			}
 			maybe_yield();
-		} while (bd->bd_bufspace > bd->bd_lobufspace ||
-		    bd->bd_freebuffers < bd->bd_hifreebuffers);
-
+		}
 		bufspace_daemon_wait(bd);
 	}
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201803261836.w2QIaHA3059754>