Re: [PATCH] __free_pages_ok oops

From: Andrew Morton (akpm@zip.com.au)
Date: Wed Feb 06 2002 - 14:47:47 EST


Hugh Dickins wrote:
>
> Sorry, no solution, but maybe another oops in __free_pages_ok might help?

What problem are you trying to solve?

>
> --- 2.4.18-pre8/mm/page_alloc.c Tue Feb 5 12:55:36 2002
> +++ linux/mm/page_alloc.c Wed Feb 6 18:31:07 2002
> @@ -73,9 +73,11 @@
> /* Yes, think what happens when other parts of the kernel take
> * a reference to a page in order to pin it for io. -ben
> */
> - if (PageLRU(page))
> + if (PageLRU(page)) {
> + if (in_interrupt())
> + BUG();
> lru_cache_del(page);
> -
> + }

Yes. lru_cache_del() in interrupt context will deadlock on SMP
or wreck the LRU list on UP. I can't see how we can ever perform
the final release of a PageLRU page in interrupt context but I agree
this test is a good one.

-
-
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:00:52 EST