Преглед изворни кода

writeback: set max_pause to lowest value on zero bdi_dirty

Some trace shows lots of bdi_dirty=0 lines where it's actually some
small value if w/o the accounting errors in the per-cpu bdi stats.

In this case the max pause time should really be set to the smallest
(non-zero) value to avoid IO queue underrun and improve throughput.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Wu Fengguang пре 13 година
родитељ
комит
82e230a07d
1 измењених фајлова са 1 додато и 2 уклоњено
  1. 1 2
      mm/page-writeback.c

+ 1 - 2
mm/page-writeback.c

@@ -989,8 +989,7 @@ static unsigned long bdi_max_pause(struct backing_dev_info *bdi,
 	 *
 	 *
 	 * 8 serves as the safety ratio.
 	 * 8 serves as the safety ratio.
 	 */
 	 */
-	if (bdi_dirty)
-		t = min(t, bdi_dirty * HZ / (8 * bw + 1));
+	t = min(t, bdi_dirty * HZ / (8 * bw + 1));
 
 
 	/*
 	/*
 	 * The pause time will be settled within range (max_pause/4, max_pause).
 	 * The pause time will be settled within range (max_pause/4, max_pause).