On Fri, 2007-09-28 at 13:10 -0700, Andrew Morton wrote: > On Fri, 28 Sep 2007 15:52:28 -0400 > Trond Myklebust <trond.myklebust@xxxxxxxxxx> wrote: > > > On Fri, 2007-09-28 at 12:26 -0700, Andrew Morton wrote: > > > On Fri, 28 Sep 2007 15:16:11 -0400 Trond Myklebust <trond.myklebust@xxxxxxxxxx> wrote: > > > > Looking back, they were getting caught up in > > > > balance_dirty_pages_ratelimited() and friends. See the attached > > > > example... > > > > > > that one is nfs-on-loopback, which is a special case, isn't it? > > > > I'm not sure that the hang that is illustrated here is so special. It is > > an example of a bog-standard ext3 write, that ends up calling the NFS > > client, which is hanging. The fact that it happens to be hanging on the > > nfsd process is more or less irrelevant here: the same thing could > > happen to any other process in the case where we have an NFS server that > > is down. > > hm, so ext3 got stuck in nfs via __alloc_pages direct reclaim? > > We should be able to fix that by marking the backing device as > write-congested. That'll have small race windows, but it should be a 99.9% > fix? No. The problem would rather appear to be that we're doing per-backing_dev writeback (if I read sync_sb_inodes() correctly), but we're measuring variables which are global to the VM. The backing device that we are selecting may not be writing out any dirty pages, in which case, we're just spinning in balance_dirty_pages_ratelimited(). Should we therefore perhaps be looking at adding per-backing_dev stats too? Trond _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm