Re: [ Linux 4.4 stable ] missing 'printk: set may_schedule for some of console_trylock() callers'

From: Greg KH
Date: Tue Jul 25 2017 - 09:58:16 EST


On Tue, Jul 25, 2017 at 10:28:16AM +0200, Michael Wang wrote:
> Hi, greg k-h
>
> During our testing with 4.4.73 we got soft lockup like:
>
> NMI watchdog: BUG: soft lockup - CPU#2 stuck for 23s! [systemd-udevd:856]
> ...
> Call Trace:
> [<ffffffff8109d139>] vprintk_emit+0x319/0x4a0
> [<ffffffff8112182d>] printk_emit+0x33/0x3b
> [<ffffffff812f9e9c>] ? simple_strtoull+0x2c/0x50
> [<ffffffff8109d39a>] devkmsg_write+0xaa/0x100
> [<ffffffff8109d2f0>] ? vprintk+0x30/0x30
> [<ffffffff811915f2>] do_readv_writev+0x1c2/0x270
> [<ffffffff8117899d>] ? kmem_cache_free+0x7d/0x1a0
> [<ffffffff81191729>] vfs_writev+0x39/0x50
> [<ffffffff8119240a>] SyS_writev+0x4a/0xd0
> [<ffffffff8158bc97>] entry_SYSCALL_64_fastpath+0x12/0x6a
>
> Currently in 4.4 the console_unlock() called by vprintk_emit() is with
> preemption disabled, so the cond_resched is not working, and soft lockup
> appear if it take too much time on writing data into every console.
>
> We found the upstream patch:
> commit 6b97a20d3a79 printk: set may_schedule for some of console_trylock() callers
>
> which should have addressed this issue, but not included in the latest 4.4.78 stable
> yet, is there any plan on backport it in future?

That commit was in the 4.6 kernel release, so odds are, it's not on a
list of patches to backport any time soon :)

But, you can ask for it to be included, if you cc: the stable@vger list,
like I did here, and add the authors of the patch to the cc: asking if
they have any objection for it being backported (also added here...)

Sergey, any objection for me backporting this?

thanks,

greg k-h