OSDN Git Service

rcu-tasks: Correct comparisons for CPU numbers in show_stalled_task_trace
authorNeeraj Upadhyay <neeraju@codeaurora.org>
Wed, 18 Aug 2021 07:28:41 +0000 (12:58 +0530)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 15 Sep 2021 18:41:14 +0000 (11:41 -0700)
Valid CPU numbers can be zero or greater, but the checks for
->trc_ipi_to_cpu and tick_nohz_full_cpu()'s argument are for strictly
greater than.  This commit therefore corrects the check for no_hz_full
cpu in show_stalled_task_trace() so as to include cpu 0.

Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/rcu/tasks.h

index e2ec548..af73888 100644 (file)
@@ -1084,9 +1084,9 @@ static void show_stalled_task_trace(struct task_struct *t, bool *firstreport)
        cpu = task_cpu(t);
        pr_alert("P%d: %c%c%c nesting: %d%c cpu: %d\n",
                 t->pid,
-                ".I"[READ_ONCE(t->trc_ipi_to_cpu) > 0],
+                ".I"[READ_ONCE(t->trc_ipi_to_cpu) >= 0],
                 ".i"[is_idle_task(t)],
-                ".N"[cpu > 0 && tick_nohz_full_cpu(cpu)],
+                ".N"[cpu >= 0 && tick_nohz_full_cpu(cpu)],
                 READ_ONCE(t->trc_reader_nesting),
                 " N"[!!READ_ONCE(t->trc_reader_special.b.need_qs)],
                 cpu);