Re: Write drop behind logic with used-once patch

Marcelo Tosatti (marcelo@conectiva.com.br)
Fri, 17 Aug 2001 10:13:11 -0300 (BRT)


On Thu, 16 Aug 2001, Daniel Phillips wrote:

> On August 16, 2001 09:43 am, Marcelo Tosatti wrote:
> > Hi Daniel,
> >
> > As far as I can see, the write drop behind logic with the used-once patch
> > is partly "gone" now: "check_used_once()" at generic_file_write() will set
> > all "write()n" pages to have age == PAGE_AGE_START (in case those pages
> > were not in cache before), which means they will be moved to the active
> > list later by page_launder(), effectively causing excessive pressure on
> > the current "active" pages since we have exponential page aging.
> >
> > I'm I overlooking some here or my thinking is correct ?
>
> The initial page create sets age=0 which serves as a "new" flag when the
> page is on the inactive list. When the page is actually touched the
> first time it transitions from age=0 to age=START, again the age is
> simply a state flag. When the page is touched the second time it's
> immediately activated, doing whatever activate does. I didn't touch
> activate.
>
> So any generic_read/write[1] page that gets used twice never gets to the
> end of the inactive queue, was that your question?

Yes.

I'm afraid the new page_launder() logic will block tasks (kswapd mainly,
of course) on writeout of those "deactivated" pages (which are potentially
"young").

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