Messages in this thread | | | Date | Tue, 25 Jan 2000 19:15:43 +0100 (CET) | From | Andrea Arcangeli <> | Subject | Re: 2.2.1{3,4,5pre*} VM bug found |
| |
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/
| |