Re: [PATCH] __free_pages_ok oops

From: Andrea Arcangeli (andrea@suse.de)
Date: Thu Feb 07 2002 - 15:58:55 EST


On Thu, Feb 07, 2002 at 02:28:44PM +0000, Hugh Dickins wrote:
> On Thu, 7 Feb 2002, Rik van Riel wrote:
> > On Thu, 7 Feb 2002, Hugh Dickins wrote:
> > >
> > > If this were a common case where many pages end up, yes, we'd
> > > need a separate special list; but it's a very rare case
> >
> > Think of a web or ftp server doing nothing but sendfile()
>
> Aren't the sendfile() pages in the page cache, and normally taken
> off LRU at the same time as removed from page cache, in shrink_cache?
> The exception being when the file is truncated while it is being sent,
> and buffers busy, so left behind on LRU by truncate_complete_page?

the buffers will hold a reference on the page. So the pagecache is
either in the LRU with refcount > 1, or the refcount is 1 and the page
is not in the lru.

In short Ben's patch was useless but it was faster and cleaner than what
we had before with the special page_cache_release, and so it was good.

Said it in another manner: we'll never effectively free a page that is
in the LRU, unless it's an anonymous page (no brainer for
sendpage/sendfile).

Hugh's patch is definitely valid and it's a nice bugcheck to have, it
should be merged IMHO (it's in a slow path), but there's no bug to fix I
think, the bugcheck is paranoid-in-slow-path kind of thing.

Andrea
-
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/



This archive was generated by hypermail 2b29 : Thu Feb 07 2002 - 21:01:07 EST