Re: [PATCH 4/5] oom: don't kill random process

David Rientjes
2011-05-25T23:50:23Z

On Tue, 24 May 2011, KOSAKI Motohiro wrote:

> > I don't care if it happens in the usual case or extremely rare case. It
> > significantly increases the amount of time that tasklist_lock is held
> > which causes writelock starvation on other cpus and causes issues,
> > especially if the cpu being starved is updating the timer because it has
> > irqs disabled, i.e. write_lock_irq(&tasklist_lock) usually in the clone or
> > exit path. We can do better than that, and that's why I proposed my patch
> > to CAI that increases the resolution of the scoring and makes the root
> > process bonus proportional to the amount of used memory.
>
> Do I need to say the same word? Please read the code at first.
>

I'm afraid that a second time through the tasklist in select_bad_process()
is simply a non-starter for _any_ case; it significantly increases the
amount of time that tasklist_lock is held and causes problems elsewhere on
large systems -- such as some of ours -- since irqs are disabled while
waiting for the writeside of the lock. I think it would be better to use
a proportional privilege for root processes based on the amount of memory
they are using (discounting 1% of memory per 10% of memory used, as
proposed earlier, seems sane) so we can always protect root when necessary
and never iterate through the list again.

Please look into the earlier review comments on the other patches, refresh
the series, and post it again. Thanks!