Re: floppy.c soft lockup

Andrew Morton
2007-06-06T17:29:20Z

On Wed, 06 Jun 2007 09:12:04 -0400 Mark Hounschell <markh@compro.net> wrote:

> >
> > As far as a 100% CPU bound task being a valid thing to do, it has been
> > done for many years on SMP machines. Any kernel limitation on this
> > surely must be considered a bug?
> >
>
> Could someone authoritatively comment on this? Is a SCHED_RR/SCHED_FIFO
> 100% Cpu bound process supported in an SMP env on Linux? (vanilla or -rt)

It will kill the kernel, sorry.

The only way in which we can fix that is to allow kernel threads to preempt
rt-priority userspace threads. But if we were to do that (to benefit the
few) it would cause _all_ people's rt-prio processes to experience glitches
due to kernel activity, which we believe to be worse.

So we're between a rock and a hard place here.

If we really did want to solve this then I guess the kernel would need some
new code to detect a 100%-busy rt-prio process and to then start premitting
preemption of it for kernel thread activity. That detector would need to
be smart enough to detect a number of 100%-busy rt-prio processes which are
yielding to each other, and one rt-prio process which keeps forking others,
etc. It might get tricky.