Re: [PATCH][RFC]: mutex: adaptive spin

Ingo Molnar
2009-01-06T16:56:15Z

* Ingo Molnar <mingo@elte.hu> wrote:

> One thought:
>
> BUG_ON()'s do_exit() shows a slightly misleading failure pattern to
> users: instead of a 'hanging' task, we'd get a misbehaving app due to
> one of its tasks exiting spuriously. It can even go completely unnoticed
> [users dont look at kernel logs normally] - while a hanging task
> generally does get noticed. (because there's no progress in processing)
>
> So instead of the BUG_ON() we could emit a WARN_ONCE() perhaps, plus not
> do any spinning and just block - resulting in an uninterruptible task
> (that the user will probably notice) and a scary message in the syslog?
> [all in the slowpath]

And we'd strictly do an uninterruptible sleep here, unconditionally: even
if this is within mutex_lock_interruptible() - we dont want a Ctrl-C or a
SIGKILL to allow to 'break out' the app from the deadlock.

Ingo