Re: 2.6.6-rc{1,2} bad VM/NFS interaction in case of dirty page writeback

Andrew Morton
2004-04-28T01:38:25Z

Trond Myklebust <trond.myklebust@fys.uio.no> wrote:
>
> On Tue, 2004-04-27 at 21:02, Andrew Morton wrote:
> > Shantanu Goel <sgoel01@yahoo.com> wrote:
> > >
> > > Andrew/Trond,
> > >
> > > Any consensus as to what the right approach is here?
> >
> > For now I suggest you do
> >
> > - err = WRITEPAGE_ACTIVATE;
> > + err = 0;
> >
> > in nfs_writepage().
>
> That will just cause the page to be put back onto the inactive list
> without starting writeback. Won't that cause precisely those kswapd
> loops that Shantanu was worried about?

Possibly - but the process which is in reclaim will throttle and will kick
pdflush which will do the writepages() thing.

It needs testing.

> AFAICS if you want to do this, you probably need to flush the page
> immediately to disk on the server using a STABLE write as per the
> appeanded patch. The problem is that screws the server over pretty hard
> as it will get flooded with what are in effect a load of 4k O_SYNC
> writes.

Well I'd be interested in discovering which workloads actually suffer
significantly from doing this. If it's a significant problem then perhaps
we should resurrect the writearound-from-within-writepage thing. It's
pretty simple to do, especially since we now have efficient ways of finding
neighbouring dirty pages.