Re: [PATCH] oom_pardon, aka don't kill my xlock

William Lee Irwin III
2004-09-23T00:07:51Z

On Thu, Sep 23, 2004 at 01:23:08AM +0200, Thomas Habets wrote:
> How about a sysctl that does "for the love of kbaek, don't ever kill these
> processes when OOM. If nothing else can be killed, I'd rather you panic"?
> Examples for this list would be /usr/bin/vlock and /usr/X11R6/bin/xlock.
> I just got a very uncomfortable surprise when found my box unlocked thanks to
> this.
> After playing around a bit, I made the patch below, but it's almost
> completely untested. I'm not even sure I take the binaries name from
> the right place. And I don't know if the locking can race. If it's
> too ugly then it'd be great if someone implemented it the right way.
> (iow: huge fucking disclaimer)
> echo "/usr/bin/vlock /usr/X11R6/bin/xlock" > /proc/sys/vm/oom_pardon

Assuming this is desirable (otherwise, why would you have written it?)

(1) uts_sem isn't the right lock.
(2) You acquire uts_sem under tasklist_lock, a deadlock.
(3) It would probably make more sense to dynamically register and
unregister the various criteria for exempt processes than mess
with space-separated fields of a single string.

-- wli