Re: [PATCH][5/?] count writeback pages in nr_scanned

From: Andrew Morton
Date: Wed Jan 05 2005 - 18:32:34 EST


Rik van Riel <riel@xxxxxxxxxx> wrote:
>
> 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.

I'll queue this up:



From: Rik van Riel <riel@xxxxxxxxxx>

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 <riel@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

25-akpm/mm/vmscan.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)

diff -puN mm/vmscan.c~vmscan-count-writeback-pages-in-nr_scanned mm/vmscan.c
--- 25/mm/vmscan.c~vmscan-count-writeback-pages-in-nr_scanned 2005-01-05 15:24:53.730874336 -0800
+++ 25-akpm/mm/vmscan.c 2005-01-05 15:25:48.286580608 -0800
@@ -369,14 +369,14 @@ static int shrink_list(struct list_head

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))
_

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