From: Rik van Riel OOM kills have been observed with 70% of the pages in lowmem being in the writeback state. If we count those pages in sc->nr_scanned, the VM should throttle and wait for IO completion, instead of OOM killing. (akpm: this is how the code was designed to work - we broke it six months ago). Signed-off-by: Rik van Riel Signed-off-by: Andrew Morton Index: linux-2.6.10-ck4/mm/vmscan.c =================================================================== --- linux-2.6.10-ck4.orig/mm/vmscan.c 2005-01-13 20:04:01.309290087 +1100 +++ linux-2.6.10-ck4/mm/vmscan.c 2005-01-13 20:04:02.339125341 +1100 @@ -369,14 +369,14 @@ BUG_ON(PageActive(page)); - if (PageWriteback(page)) - goto keep_locked; - sc->nr_scanned++; /* Double the slab pressure for mapped and swapcache pages */ if (page_mapped(page) || PageSwapCache(page)) sc->nr_scanned++; + if (PageWriteback(page)) + goto keep_locked; + referenced = page_referenced(page, 1, sc->priority <= 0); /* In active use or really unfreeable? Activate it. */ if (referenced && page_mapping_inuse(page))