[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120209113606.GA8054@sig21.net>
Date: Thu, 9 Feb 2012 12:36:06 +0100
From: Johannes Stezenbach <js@...21.net>
To: Hillf Danton <dhillf@...il.com>
Cc: Toralf Förster <toralf.foerster@....de>,
linux-kernel@...r.kernel.org, Rik van Riel <riel@...hat.com>,
linux-mm@...ck.org
Subject: Re: swap storm since kernel 3.2.x
On Wed, Feb 08, 2012 at 08:34:14PM +0800, Hillf Danton wrote:
> And I want to ask kswapd to do less work, the attached diff is
> based on 3.2.5, mind to test it with CONFIG_DEBUG_OBJECTS enabled?
Sorry, for slow reply. The patch does not apply to 3.2.4
(3.2.5 only has the ASPM change which I don't want to
try atm). Is the patch below correct?
I'll let this run for a while and will report back.
Thanks
Johannes
--- mm/vmscan.c.orig 2012-02-03 21:39:51.000000000 +0100
+++ mm/vmscan.c 2012-02-09 12:30:42.000000000 +0100
@@ -2067,8 +2067,11 @@ restart:
* with multiple processes reclaiming pages, the total
* freeing target can get unreasonably large.
*/
- if (nr_reclaimed >= nr_to_reclaim && priority < DEF_PRIORITY)
+ if (nr_reclaimed >= nr_to_reclaim) {
+ nr_to_reclaim = 0;
break;
+ }
+ nr_to_reclaim -= nr_reclaimed;
}
blk_finish_plug(&plug);
sc->nr_reclaimed += nr_reclaimed;
@@ -2535,12 +2538,12 @@ static unsigned long balance_pgdat(pg_da
* we want to put equal scanning pressure on each zone.
*/
.nr_to_reclaim = ULONG_MAX,
- .order = order,
.mem_cgroup = NULL,
};
struct shrink_control shrink = {
.gfp_mask = sc.gfp_mask,
};
+ sc.order = order = 0;
loop_again:
total_scanned = 0;
sc.nr_reclaimed = 0;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists