On Fri, Oct 05, 2007 at 10:20:05AM -0700, Andrew Morton wrote:
Hmm, that's a problem. But I guess when one zone is full, other zones
will not be far away... It's a "sooner or later" problem.
I guess PF_SWAPWRITE processes still have good probability to stuck in
get_request_wait(). Because balance_dirty_pages() are allowed to
disregard the congestion. It will be exhausting the available request
slots all the time.
Signed-off-by: Fengguang Wu <firstname.lastname@example.org>
mm/page-writeback.c | 1 +
1 file changed, 1 insertion(+)
@@ -400,6 +400,7 @@ static void balance_dirty_pages(struct a
.sync_mode = WB_SYNC_NONE,
.older_than_this = NULL,
.nr_to_write = write_chunk,
+ .nonblocking = 1,
.range_cyclic = 1,
That must be a big improvement!
Yeah. So the polling overheads are limited.
I've been watching the raw numbers by writing scripts. This one can be
while true; do
while read a b
done < /proc/vmstat
echo -e "$uptime\t$ratio%\t$steal\t$scan"
Not surprisingly, I see nice numbers on my desktop:
9517.99 9368.60 96% 1898452 1961536
Thank you for the nice tip :-)