Re: Andrea VM changes

From: Andrea Arcangeli
Date: Sat Aug 30 2003 - 18:19:46 EST


On Sat, Aug 30, 2003 at 04:21:02PM -0300, Marcelo Tosatti wrote:
> y
>
> On Sat, 30 Aug 2003, Marcelo Tosatti wrote:
>
> > >
> > > Indeed, you are right.
> > >
> > > I'll start looking at them Monday. I'll keep you in touch. Thanks.
> >
> > Andrea,
> >
> > Would you mind to explain me 05_vm_06_swap_out-3 ?
> >
> > I see you change shrink_cache, try_to_free_pages_zone, etc.
> >
> > Can you please give me a detailed explanation of the changes there?
> >
> > I appreciate very much.
> >
> > I'll keep looking at other patches for now.
>
> 05_vm_09_misc_junk-3 removes the PF_MEMDIE and you also seem to remove the
> OOM killer. Is that right? Why?

because the oom killer is a DoS on servers, on a database setup, with 2G
free, with say all tasks 2.7G large, it'll start killing all the
thousand database tasks instead of the 2g netscape task that hit an
userspace bug and it started allocating ram in a loop, and that will
make no progress since no physical ram will be released. There's no need
of oom killer to keep the system stable, with my vm, and the current
probabilistic oom killer in the page fault hander kills the right task
most of the time (unlike the stock oom killers that works well only for
the desktops or developer machines). So it does a much better job and it
doesn't risk to DoS the box due oom.

Another DoS generated by the oom killer is that it'll try forever to
kill a UNINTERRUPTIBLE task hanging in a nfs server that is down, so it
hangs the whole box for an unlimited time.

I've an algorithm that will work, and that will provide very good
guarantees to kill the "best" task to make the machine usable again,
with the needed protection against the security DoSes, but it's in
no-way similar to the current oom killer.

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