From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AH8x2250UEZY0kOXIkQ5O/EV0oL9Qu1+OjYbptk+JPfjVQePU/5laMBnwD+fFf0GcP8NtgY6C2mZ ARC-Seal: i=1; a=rsa-sha256; t=1516611193; cv=none; d=google.com; s=arc-20160816; b=caC5ulwRhB2cFzR5sJKUmIH2992hVaj3pgZ6xTeXpAa11G1H9E4mmAXET+hC8Ro6ne jcM8dZFfkvi/RG/v2MlRNBk4xAMw7CmIhDjzM7tpMIoieRGE7zvMw94zWTxOWJUfDXqI rhwHwMl3imcv99X1EAHYXeAyNHMqMW0+tai7RCiyBrnPEM7N8ttvuoSK1KtbMqKk96fa nf5fXIFDzQiWcySvxUS872sERXRypVvA2e+FfeoW0UeFJCd60WvtnMNW4+e46/X8uBC3 0Aaxh4RNj1QgK31at13pZ2m1OUieJr3+SCA5VoVr4qkMS2SVJyN+jMktfItPsbDz4MD0 RJrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:user-agent:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=ugOmNEDFKsB7YfL+FxhureswnmiCnEWhR+d6SZduNVw=; b=b3odOm5m9Q6ysYMWTsDj5BO0hVKZ3IJvHdEGNGWPMha/oeIO3Vkkwz6lTDJQVp+ZdW dYZHLGzn/YKScpit1clMxYNsrnPLA9rMHK7h+0cZ8Jlnukvtzik9CpSykZUsxDLmjW/j o3PdB/ekR5beVe2UdZdmMaSnDM3DM/Hle2on2c8Z/IbMg8gNmNSdU2p6vOWZ9EhmF0/M nvVWXYPO17tp5FrEL2kZAHhdPQ/BBFLKUY57lKnBmrNJo3dqwI2mZ7QmH2frvaeeasr7 fT0QMqYR3qUbR7adRBKp7HpZxajkHwdrlpZeQMGC/G9csjw8b/3rP8lzPFQ7vG5c7O0L usow== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning gregkh@linuxfoundation.org does not designate 90.92.71.90 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning gregkh@linuxfoundation.org does not designate 90.92.71.90 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sergey Senozhatsky , Tejun Heo Subject: [PATCH 4.14 68/89] workqueue: avoid hard lockups in show_workqueue_state() Date: Mon, 22 Jan 2018 09:45:48 +0100 Message-Id: <20180122084001.245387066@linuxfoundation.org> X-Mailer: git-send-email 2.16.0 In-Reply-To: <20180122083954.683903493@linuxfoundation.org> References: <20180122083954.683903493@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-LABELS: =?utf-8?b?IlxcU2VudCI=?= X-GMAIL-THRID: =?utf-8?q?1590281832771321451?= X-GMAIL-MSGID: =?utf-8?q?1590282099501082015?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Sergey Senozhatsky 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. Signed-off-by: Sergey Senozhatsky Signed-off-by: Tejun Heo Signed-off-by: Greg Kroah-Hartman --- kernel/workqueue.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -48,6 +48,7 @@ #include #include #include +#include #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();