Re: [PATCH] sched/debug: Reset watchdog on all CPUs while processing sysrq-t

From: Steven Rostedt
Date: Thu Jan 02 2020 - 14:45:32 EST


On Thu, 26 Dec 2019 16:52:24 +0800
Wei Li <liwei391@xxxxxxxxxx> wrote:

> Lengthy output of sysrq-t may take a lot of time on slow serial console
> with lots of processes and CPUs.
>
> So we need to reset NMI-watchdog to avoid spurious lockup messages, and
> we also reset softlockup watchdogs on all other CPUs since another CPU
> might be blocked waiting for us to process an IPI or stop_machine.

Have you had this triggered?

>
> Add to sysrq_sched_debug_show() as what we did in show_state_filter().
>
> Signed-off-by: Wei Li <liwei391@xxxxxxxxxx>
> ---
> kernel/sched/debug.c | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
> index f7e4579e746c..879d3ccf3806 100644
> --- a/kernel/sched/debug.c
> +++ b/kernel/sched/debug.c
> @@ -751,9 +751,16 @@ void sysrq_sched_debug_show(void)
> int cpu;
>
> sched_debug_header(NULL);
> - for_each_online_cpu(cpu)
> + for_each_online_cpu(cpu) {
> + /*
> + * Need to reset softlockup watchdogs on all CPUs, because
> + * another CPU might be blocked waiting for us to process
> + * an IPI or stop_machine.
> + */
> + touch_nmi_watchdog();
> + touch_all_softlockup_watchdogs();

This doesn't seem to hurt to add, thus.

Reviewed-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>

-- Steve

> print_cpu(NULL, cpu);
> -
> + }
> }
>
> /*