Re: [RFC][-mm][PATCH 3/6] oom-killer: count lowmem rss

KAMEZAWA Hiroyuki
2009-11-04T00:24:51Z

On Tue, 3 Nov 2009 12:24:01 -0800 (PST)
David Rientjes <rientjes@google.com> wrote:

> On Mon, 2 Nov 2009, KAMEZAWA Hiroyuki wrote:
>
> > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> >
> > Count lowmem rss per mm_struct. Lowmem here means...
> >
> > for NUMA, pages in a zone < policy_zone.
> > for HIGHMEM x86, pages in NORMAL zone.
> > for others, all pages are lowmem.
> >
> > Now, lower_zone_protection[] works very well for protecting lowmem but
> > possiblity of lowmem-oom is not 0 even if under good protection in the kernel.
> > (As fact, it's can be configured by sysctl. When we keep it high, there
> > will be tons of not-for-use memory but system will be protected against
> > rare event of lowmem-oom.)
>
> Right, lowmem isn't addressed currently by the oom killer. Adding this
> constraint will probably make the heuristics much harder to write and
> understand. It's not always clear that we want to kill a task using
> lowmem just because another task needs some, for instance.
The same can be said against all oom-kill ;)

> Do you think we'll need a way to defer killing any task is no task is
> heuristically found to be hogging lowmem?

Yes, I think so. But my position is a bit different.

In typical x86-32 server case, which has 4-8G memory, most of memory usage
is highmem. So, if we have no knowledge of lowmem, multiple innocent processes
will be killed in every 30 secs of oom-kill.

My final goal is migrating lowmem pages to highmem as kswapd-migraion or
oom-migration. Total rewrite for this will be required in future.

Thanks,
-Kame

Thanks,
-Kame

Thanks,
-Kame