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

From: Andrea Arcangeli (andrea@suse.de)
Date: Tue Jan 25 2000 - 13:15:43 EST


On Tue, 25 Jan 2000, Rik van Riel wrote:

>calls __get_free_pages(). When we're (almost) out of
>memory, the process will wake up kswapd and try to

You'll block also before to go out of memory if the allocation rate is
high enough.

>In 2.2.15pre4 or when the call to try_to_free_pages()
>generates disk I/O, the task will call schedule().
>Since the task state != TASK_RUNNABLE, schedule() will
>immedately remove it from the run queue ...

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.

Andrea

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