Re: mmap over nfs leads to excessive system load

From: Trond Myklebust
Date: Wed Nov 16 2005 - 15:05:09 EST


On Wed, 2005-11-16 at 11:09 -0800, Andrew Morton wrote:
> Trond Myklebust <trond.myklebust@xxxxxxxxxx> wrote:
> >
> > On Wed, 2005-11-16 at 10:00 -0800, Andrew Morton wrote:
> >
> > > That will fix it, but the PageWriteback accounting is still wrong.
> > >
> > > Is it not possible to use set_page_writeback()/end_page_writeback()?
> >
> > Not really. The pages aren't flushed at this time. We the point is to
> > gather several pages and coalesce them into one over-the-wire RPC call.
> > That means we cannot really do it from inside ->writepage().
> >
>
> I still don't get it.
>
> Once nfs_writepage() has been called, the page is conceptually "under
> writeback", yes? In that, at some point in the future, it will be written
> to backing store.
>
> Hence it's perfectly appropriate to run set_page_writepage() within
> nfs_writepage(). It's a matter of finding the right place for the
> end_page_writeback().

The point is that the process of flushing has not been started at that
time, so anybody that calls wait_on_page_writeback() immediately after
calling writepage() may end up waiting for a very long time indeed
(probably until the next pdflush).

Cheers,
Trond

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/