Re: [PATCH] __free_pages_ok oops

From: Hugh Dickins (hugh@veritas.com)
Date: Thu Feb 07 2002 - 08:19:04 EST


On Thu, 7 Feb 2002, Rik van Riel wrote:
>
> The mechanism to do what I described above should of course be
> in __free_pages_ok().
>
> 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, so I
think it's more appropriate to let shrink_cache do it when it
eventually reaches them on the inactive_list.

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.

I think I prefer mine, in_interrupt() as a sanity check which
could be removed when we feel safer, to yours where it's
deciding the behaviour of __free_pages_ok. Any strong feelings?

Hugh

-
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:01 EST