lkml.org 
[lkml]   [2002]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] __free_pages_ok oops
Date
On February 7, 2002 02:27 pm, Rik van Riel wrote:
> On Thu, 7 Feb 2002, Hugh Dickins wrote:
>
> > > if (PageLRU(page)) {
> > > if (in_interrupt()) {
> > > add_page_to_special_list(page);
> > > return;
> > > } else
> > > lru_cache_del(page);
> > > }
> >
> > 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()

But still, you're

> > I was proposing we revert to distinguishing page_cache_release
> > from put_page, page_cache_release doing the lru_cache_del; and
> > I'd like to add my in_interrupt() BUG() there for now, just as
> > a sanity check. You are proposing that we keep the current,
> > post-Ben, structure of doing it in __free_pages_ok if possible.
>
> So how exactly would pages be freed ?
> You still need to do the check of whether the page can
> be freed somewhere.

He suggested letting shrink_caches find it. But since we already know the
page is free there's no sense scanning for it, so on balance I think your
approach is better. An atomic_put_page, used from any context that could end
up in an interrupt, would be better yet, just because it imposes the extra
check only on users that require it. Otoh, I did note davem's objection
above.

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

\
 
 \ /
  Last update: 2005-03-22 13:24    [from the cache]
©2003-2011 Jasper Spaans