Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage

From: Stephen Hemminger
Date: Wed Apr 05 2017 - 20:31:34 EST


On Sun, 02 Apr 2017 06:28:41 +0200
Mike Galbraith <efault@xxxxxx> wrote:

> Livelock can be triggered by setting kworkers to SCHED_FIFO, then
> suspend/resume.. you come back from sleepy-land with a spinning
> kworker. For whatever reason, I can only do that with an enterprise
> like config, my standard config refuses to play, but no matter, it's
> "Typical broken usage".
>
> (yield() should be rendered dead)

The kernel is not normally built to have kworkers run at SCHED_FIFO.
The user has do some action to alter the process priorities.

I classify this as user error. We don't support killing kworker threads
either.