Re: 2.2.1{3,4,5pre*} VM bug found

From: Rik van Riel (riel@nl.linux.org)
Date: Tue Jan 25 2000 - 19:48:43 EST


On Tue, 25 Jan 2000, Andrea Arcangeli wrote:

> Before calling schedule() you always gets registered in a
> waitqueue so you can't deadlock or wait too much.
>
> If something there is the opposite problem. If you do:
>
> __set_current_state(TASK_UNINTERRUPTIBLE);
> get_page(GFP_KERNEL);
> XXXXXXXXXXXXXXXXXXXX
> schedule();
>
> then at point XXXXXXX you may become a task running and you don't
> block anymore.

The problem in this case is that schedule() may be called
from within get_page(GFP_KERNEL). This already was possible
in 2.2.14 and before (if the task had to wait for I/O on
try_to_free_pages()), but the explicit schedule() in my
stuff in 2.2.15pre4 amplified the problem and made it
visible.

A fix for this problem is in one of my other emails and
at my web page: http://www.surriel.com/patches/

regards,

Rik

--
The Internet is not a network of computers. It is a network
of people. That is its real strength.

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jan 31 2000 - 21:00:16 EST