From 818a787f670f7489ed04e3d69da4403efaee2055 Mon Sep 17 00:00:00 2001 From: Minchan Kim Date: Fri, 22 Feb 2013 16:35:37 -0800 Subject: [PATCH] --- yaml --- r: 356607 b: refs/heads/master c: 0e50ce3b50fb4ffc38c98fe7622361da4d0808c1 h: refs/heads/master i: 356605: 8e49dc165cb193cfb2626d52255ca3e7364f5f32 356603: d4021e7fbbb0aa4a73b2e4cf58af4fa8e24f4eba 356599: 9b85dd248ba0505d0e6488db62e93f068bc95d52 356591: 680883577ddb80eb7e5a9de7cb953aa561f0b5c9 356575: d7d0fcfe31e4d02473fc0027b35d09143bb5fbe1 356543: 8863ea7e77341637d6998f8b1fd17b73bededb37 356479: d8827093bd6f65a286a36b10efaa6badf49690bd 356351: 0d2f364b8505d37b42a748d7b7f8a1712c859fdf v: v3 --- [refs] | 2 +- trunk/mm/vmscan.c | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 79f86cc62390..b68e01cb1e6f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 00ef2d2f84babb9b209f0fc003bc490c6bf1e6ef +refs/heads/master: 0e50ce3b50fb4ffc38c98fe7622361da4d0808c1 diff --git a/trunk/mm/vmscan.c b/trunk/mm/vmscan.c index 396ecee281d0..606d0bb46091 100644 --- a/trunk/mm/vmscan.c +++ b/trunk/mm/vmscan.c @@ -2194,6 +2194,13 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, if (sc->nr_reclaimed >= sc->nr_to_reclaim) goto out; + /* + * If we're getting trouble reclaiming, start doing + * writepage even in laptop mode. + */ + if (sc->priority < DEF_PRIORITY - 2) + sc->may_writepage = 1; + /* * Try to write back as many pages as we just scanned. This * tends to cause slow streaming writers to write data to the @@ -2765,12 +2772,10 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order, } /* - * If we've done a decent amount of scanning and - * the reclaim ratio is low, start doing writepage - * even in laptop mode + * If we're getting trouble reclaiming, start doing + * writepage even in laptop mode. */ - if (total_scanned > SWAP_CLUSTER_MAX * 2 && - total_scanned > sc.nr_reclaimed + sc.nr_reclaimed / 2) + if (sc.priority < DEF_PRIORITY - 2) sc.may_writepage = 1; if (zone->all_unreclaimable) {