[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1786ab030907281211x6e432ba6ha6afe9de73f24e0c@mail.gmail.com>
Date: Tue, 28 Jul 2009 12:11:31 -0700
From: Chad Talbott <ctalbott@...gle.com>
To: linux-kernel@...r.kernel.org
Cc: linux-mm@...ck.org, wfg@...l.ustc.edu.cn,
Martin Bligh <mbligh@...gle.com>,
Michael Rubin <mrubin@...gle.com>,
Andrew Morton <akpm@...gle.com>, sandeen@...hat.com
Subject: Bug in kernel 2.6.31, Slow wb_kupdate writeout
I run a simple workload on a 4GB machine which dirties a few largish
inodes like so:
# seq 10 | xargs -P0 -n1 -i\{} dd if=/dev/zero of=/tmp/dump\{}
bs=1024k count=100
While the dds are running data is written out at disk speed. However,
once the dds have run to completion and exited there is ~500MB of
dirty memory left. Background writeout then takes about 3 more
minutes to clean memory at only ~3.3MB/s. When I explicitly sync, I
can see that the disk is capable of 40MB/s, which finishes off the
files in ~10s. [1]
An interesting recent-ish change is "writeback: speed up writeback of
big dirty files." When I revert the change to __sync_single_inode the
problem appears to go away and background writeout proceeds at disk
speed. Interestingly, that code is in the git commit [2], but not in
the post to LKML. [3] This is may not be the fix, but it makes this
test behave better.
Thanks,
Chad
[1] I've plotted the dirty memory from /proc/meminfo and disk write
speed from iostat at
http://sites.google.com/site/cwtlinux/2-6-31-writeback-bug
[2] git commit:
http://mirror.celinuxforum.org/gitstat/commit-detail.php?commit=8bc3be2751b4f74ab90a446da1912fd8204d53f7
[3] LKML post: http://marc.info/?l=linux-kernel&m=119131601130372&w=2
--
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