[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20111213021913.GB14660@localhost>
Date: Tue, 13 Dec 2011 10:19:13 +0800
From: Wu Fengguang <fengguang.wu@...el.com>
To: "linux-fsdevel@...r.kernel.org" <linux-fsdevel@...r.kernel.org>
Cc: Jan Kara <jack@...e.cz>, Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Andrew Morton <akpm@...ux-foundation.org>,
Li Shaohua <shaohua.li@...el.com>,
LKML <linux-kernel@...r.kernel.org>
Subject: [PATCH 3/3] writeback: do strict bdi dirty_exceeded
This helps to reduce dirty throttling polls and hence CPU overheads.
bdi->dirty_exceeded typically only helps when suddenly starting 100+
dd's on a disk, in which case the dd's may need to poll
balance_dirty_pages() earlier than tsk->nr_dirtied_pause.
CC: Jan Kara <jack@...e.cz>
CC: Peter Zijlstra <a.p.zijlstra@...llo.nl>
Signed-off-by: Wu Fengguang <fengguang.wu@...el.com>
---
mm/page-writeback.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- linux-next.orig/mm/page-writeback.c 2011-12-04 12:03:06.000000000 +0800
+++ linux-next/mm/page-writeback.c 2011-12-04 12:03:07.000000000 +0800
@@ -1097,7 +1097,7 @@ static void balance_dirty_pages(struct a
bdi_stat(bdi, BDI_WRITEBACK);
}
- dirty_exceeded = (bdi_dirty > bdi_thresh) ||
+ dirty_exceeded = (bdi_dirty > bdi_thresh) &&
(nr_dirty > dirty_thresh);
if (dirty_exceeded && !bdi->dirty_exceeded)
bdi->dirty_exceeded = 1;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists