Re: [PATCH v3] oom-kill: add lowmem usage aware oom kill handling

From: KAMEZAWA Hiroyuki
Date: Tue Jan 26 2010 - 18:57:36 EST


On Tue, 26 Jan 2010 15:12:02 -0800
Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Mon, 25 Jan 2010 15:15:03 +0900
> KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:

> > This patch does
> > - add sysctl for new bahavior.
> > - add CONSTRAINT_LOWMEM to oom's constraint type.
> > - pass constraint to __badness()
> > - change calculation based on constraint. If CONSTRAINT_LOWMEM,
> > use low_rss instead of vmsize.
> >
> > Changelog 2010/01/25
> > - showing extension_mask value in OOM kill main log header.
> > Changelog 2010/01/22:
> > - added sysctl
> > - fixed !CONFIG_MMU
> > - fixed fs/proc/base.c breakacge.
>
> It'd be nice to see some testing results for this. Perhaps "here's a
> test case and here's the before-and-after behaviour".
>
Hm. posting test case module is O.K ?
At leaset, I'll add what test was done and /var/log/message output to the log.


> I don't like the sysctl knob much.
me, too.

> Hardly anyone will know to enable
> it so the feature won't get much testing and this binary decision
> fractures the testing effort. It would be much better if we can get
> everyone running the same code. I mean, if there are certain workloads
> on certain machines with which the oom-killer doesn't behave correctly
> then fix it!
Yes, I think you're right. But "breaking current behaviro of our servers!"
arguments kills all proposal to this area and this oom-killer or vmscan is
a feature should be tested by real users. (I'll write fork-bomb detector
and RSS based OOM again.)

Then, I'd like to use sysctl. Distro/users can select default value of this
by /etc/sysctl.conf file, at least.


>
> Why was the '#include <linux/sysctl.h>" removed from sysctl.c?
>
> The patch adds a random newline to sysctl.c.
>
Sorry. my bad.


> It was never a good idea to add extern declarations to sysctl.c. It's
> better to add them to a subsystem-specific header file (ie:
> mm-sysctl.h) and then include that file from the mm files that define
> or use sysctl_foo, and include it into sysctl.c. Oh well.
>
Hmm. Okay. I'll consider about that.

Thanks,
-Kame

--
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/