Patch "workqueue: avoid hard lockups in show_workqueue_state()" has been added to the 4.14-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
workqueue: avoid hard lockups in show_workqueue_state()
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
workqueue-avoid-hard-lockups-in-show_workqueue_state.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
62635ea8c18f0f62df4cc58379e4f1d33afd5801Mon Sep 17 00:00:00 2001
From: Sergey Senozhatsky <[email protected]>
Date: Thu, 11 Jan 2018 09:53:35 +0900
Subject: workqueue: avoid hard lockups in show_workqueue_state()
From: Sergey Senozhatsky <[email protected]>
commit 62635ea8c18f0f62df4cc58379e4f1d33afd5801 upstream.
show_workqueue_state() can print out a lot of messages while being in atomic context, e.g. sysrq-t -> show_workqueue_state(). If the console device is slow it may end up triggering NMI hard lockup watchdog.
--- kernel/workqueue.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
kernel/workqueue.c +13 -0
@@ -48,6 +48,7 @@#include <linux/nodemask.h> #include <linux/moduleparam.h> #include <linux/uaccess.h> +#include <linux/nmi.h> #include "workqueue_internal.h"
@@ -4479,6 +4480,12 @@ void show_workqueue_state(void)if (pwq->nr_active || !list_empty (&pwq->delayed_works))show_pwq (pwq);spin_unlock_irqrestore (&pwq->pool->lock, flags); +/* +* We could be printing a lot from atomic context, e.g. +* sysrq-t -> show_workqueue_state(). Avoid triggering +* hard lockup. +*/ +touch_nmi_watchdog (); } }
@@ -4506,6 +4513,12 @@ void show_workqueue_state(void)pr_cont ("\n" ); next_pool:spin_unlock_irqrestore (&pool->lock, flags); +/* +* We could be printing a lot from atomic context, e.g. +* sysrq-t -> show_workqueue_state(). Avoid triggering +* hard lockup. +*/ +touch_nmi_watchdog (); }rcu_read_unlock_sched ();
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/workqueue-avoid-hard-lockups-in-show_workqueue_state.patch