[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20061204100656.793d8d6a.akpm@osdl.org>
Date: Mon, 4 Dec 2006 10:06:56 -0800
From: Andrew Morton <akpm@...l.org>
To: "Horst H. von Brand" <vonbrand@....utfsm.cl>
Cc: Aucoin@...ston.RR.com, "'Kyle Moffett'" <mrmacman_g4@....com>,
"'Tim Schmielau'" <tim@...sik3.uni-rostock.de>, torvalds@...l.org,
linux-kernel@...r.kernel.org, clameter@....com
Subject: Re: la la la la ... swappiness
On Mon, 04 Dec 2006 14:07:22 -0300
"Horst H. von Brand" <vonbrand@....utfsm.cl> wrote:
> Please explain again:
>
> - What you are doing, step by step
That 2GB machine apparently has a 1.6GB shm segment which is mlocked. That will
cause the VM to do one heck of a lot of pointless scanning and could, I guess,
cause false oom decisions. It's also an ia32 highmem machine, which adds to the
fun.
We could scan more:
--- a/mm/vmscan.c~a
+++ a/mm/vmscan.c
@@ -918,6 +918,7 @@ static unsigned long shrink_zone(int pri
* slowly sift through the active list.
*/
zone->nr_scan_active += (zone->nr_active >> priority) + 1;
+ zone->nr_scan_active *= 2;
nr_active = zone->nr_scan_active;
if (nr_active >= sc->swap_cluster_max)
zone->nr_scan_active = 0;
@@ -925,6 +926,7 @@ static unsigned long shrink_zone(int pri
nr_active = 0;
zone->nr_scan_inactive += (zone->nr_inactive >> priority) + 1;
+ zone->nr_scan_inactive *= 2;
nr_inactive = zone->nr_scan_inactive;
if (nr_inactive >= sc->swap_cluster_max)
zone->nr_scan_inactive = 0;
_
but that's rather dumb. Better would be to remove mlocked pages from the
LRU.
-
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