Re: [patch 2/13] remove pages from the LRU in __free_pages_ok()

Linus Torvalds (torvalds@transmeta.com)
Sun, 28 Jul 2002 20:51:13 -0700 (PDT)


On Sun, 28 Jul 2002, David S. Miller wrote:
>
> Also skb_release_data(), ___pskb_trim() and __pskb_pull_tail(). Can these
> ever perform the final release against a page which is on the LRU?
> In interrupt context?
>
> These page releases run from either user or softint context.
>
> They must never run from HW irqs, in fact there is a BUG()
> check there against this.

irq's, so that doesn't much help here.

> Any page that can be found in the page cache can end up here. So
> whatever that mean for "release against a page which is on the LRU"
> applies here.

Being in the page cache can be ok. What is _not_ ok is if this function
can ever be the last user to release such a page (ie the original page
count of the page had better be held on by something else - which usually
is the page-cacheness itself, since shrinking the page cache will only
happen for pages that are unused).

Linus

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