Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp797496ybh; Thu, 12 Mar 2020 11:18:05 -0700 (PDT) X-Google-Smtp-Source: ADFU+vuSKa7nPr7P9RoMAWlQZEcUx6zhE0iYDNIVaVJMD47EGv0QH7uCMd5bbEsvGRvccp0iq9+L X-Received: by 2002:aca:d553:: with SMTP id m80mr3731392oig.30.1584037085225; Thu, 12 Mar 2020 11:18:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584037085; cv=none; d=google.com; s=arc-20160816; b=nf0ssu6Zdl81DNPAr2W1+e6tPJVF1eUJpr8pi6ZvYubCBhj3FCGedNUhsvYBNUq7IT NVunPdQORE9c08lauUwb3wcLpuDgvL1FMA7rjLIhpoPtMpqgsoJMY4gtG2XMicSoEzt0 svRnVcSInk9yqVRdaX5nvYoV17XPY4CLZwAsUuNsSIIH40fWP2VbbgnoD+4XNk8EadF1 2f/NvO8sMITtrIQgWdskRwJkw7v167y4+o/ROpMRapwk6gdI7Gfx5OCijsDg58pXJ57T XDFaJdJDTrrSHkGgYqY3raFRC9hgUiOPEYgNV/t7RkC+i1ll/t8ASggUTiEu8fYXELlD JQow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=qRpCoJceS6omF2Ki8LIsXTBnehvWdnVqX/sXhkR/5O8=; b=xNPPKSLKJCmW7gS3l8oMEVGHXfbNvGXkm+tl3u9HRoa5+4BalztqAGAxtMJVaiUVWI JBgL8k7qv1qXSkBe+MjXti/mSRiLHPToL+cW6aDRExgBmdFLIY+Hjh6ZAbKWdX+g8JJO yPVgnWbyHvBAc4joLx9ki0IWPUI3Ezt7u7eOGpBwNcz83nIU7C0Gq9k/PKoKaUxItX/V djXURLKoF//UH8E6tbYwGQ4+58kwFLBwTPYOLQgZVL5UqJTeGUirlbvGoTE0zdVAxjWY zcroOxqGtYtyY7iFb9sgPRXR0baxkf3RWvyjMplAkvRjkB/qHcPDQPc8Npony7Hy3yiZ w2+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=qC5DF7z0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c6si3276888otk.233.2020.03.12.11.17.52; Thu, 12 Mar 2020 11:18:05 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=qC5DF7z0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726877AbgCLSRZ (ORCPT + 99 others); Thu, 12 Mar 2020 14:17:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:51958 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726761AbgCLSRK (ORCPT ); Thu, 12 Mar 2020 14:17:10 -0400 Received: from paulmck-ThinkPad-P72.home (50-39-105-78.bvtn.or.frontiernet.net [50.39.105.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E66082076F; Thu, 12 Mar 2020 18:17:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584037030; bh=Hl5xchzWnTmUmJDA9ylXI+yCA+nRbbckYmskZgrnRG8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qC5DF7z0y4f/jmGQDreWy2Z1OJVFJ303SKxwPfcWUItpoIRoqJ5fEyVFxjnIPmcED 1TnC1WekgWrL/+WSDfLkIdzgcsElHNqv8Muwc23hx5C+6ThXTX6RL+nb6ar0ojBldg JoaCHndtBtOTFQAIT2fI4wlea7c6chVlledi/fOQ= From: paulmck@kernel.org To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@fb.com, mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, fweisbec@gmail.com, oleg@redhat.com, joel@joelfernandes.org, "Paul E. McKenney" Subject: [PATCH RFC tip/core/rcu 16/16] rcu-tasks: Add stall warnings for RCU Tasks Trace Date: Thu, 12 Mar 2020 11:17:02 -0700 Message-Id: <20200312181702.8443-16-paulmck@kernel.org> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20200312181618.GA21271@paulmck-ThinkPad-P72> References: <20200312181618.GA21271@paulmck-ThinkPad-P72> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Paul E. McKenney" This commit adds RCU CPU stall warnings for RCU Tasks Trace. These dump out any tasks blocking the current grace period, as well as any CPUs that have not responded to an IPI request. Signed-off-by: Paul E. McKenney --- kernel/rcu/tasks.h | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h index 5d7bd48..8cffc1c 100644 --- a/kernel/rcu/tasks.h +++ b/kernel/rcu/tasks.h @@ -788,8 +788,9 @@ static void rcu_tasks_trace_postscan(void) /* Do one scan of the holdout list. */ static void check_all_holdout_tasks_trace(struct list_head *hop, - bool ndrpt, bool *frptp) + bool needreport, bool *firstreport) { + int cpu; struct task_struct *g, *t; list_for_each_entry_safe(t, g, hop, trc_holdout_list) { @@ -799,9 +800,32 @@ static void check_all_holdout_tasks_trace(struct list_head *hop, trc_wait_for_one_reader(t, hop); // If check succeeded, remove this task from the list. - if (READ_ONCE(t->trc_reader_checked)) + if (READ_ONCE(t->trc_reader_checked)) { trc_del_holdout(t); + continue; + } else if (!needreport) { + continue; + } + if (*firstreport) { + pr_err("INFO: rcu_tasks_trace detected stalls on tasks:\n"); + *firstreport = false; + } + cpu = task_cpu(t); + pr_alert("%p: %c%c%c nesting: %d%c cpu: %d\n", + t, + ".I"[READ_ONCE(t->trc_ipi_to_cpu) > 0], + ".i"[is_idle_task(t)], + "N."[cpu < 0 || !tick_nohz_full_cpu(cpu)], + t->trc_reader_nesting, + " N"[!!t->trc_reader_need_end], + cpu); + sched_show_task(t); } + if (!needreport) + return; + for_each_possible_cpu(cpu) + if (per_cpu(trc_ipi_to_cpu, cpu)) + pr_alert("\tIPI outstanding to CPU %d\n", cpu); } /* Wait for grace period to complete and provide ordering. */ -- 2.9.5