Re: [PATCH] __free_pages_ok oops

Benjamin LaHaise (bcrl@redhat.com)
Mon, 25 Feb 2002 13:32:26 -0500


On Thu, Feb 14, 2002 at 08:27:36AM -0800, Linus Torvalds wrote:
> I'd really really hate to have the IO make pages go away from irq context
> in 2.5.x too. I think async IO should always be started and cleaned up in
> a user context - there simply isn't any reason not to (the notion of doing
> an exit() or execve() with IO still pending to now-dead-memory is rather
> horrible in itself).

I disagree: requiring aio to execute completion in user context means
that we can no longer have quick completion directly from an interrupt
handler to a busy server executing in userland.

That said, it is possible to do the same partial completion as is done
with file descriptors from interrupt context for pages, but it'll be
*really* gross. Freeing pages should be possible from any context IMO.

> > I think the foundamental design mistake that leads to __free_pages to
> > fail from irq, is that we allow an anonymous page to reach count 0 and to be
> > still in the LRU (the count == 0 check in shrink_cache is the other side
> > of the hack too). That's the real BUG, that breaks subtly the freelist
> > semantics
>
> Agreed. We should NEVER free the pages from the irq.

Uhm, what about the network stack?

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