Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp5422495ybf; Thu, 5 Mar 2020 00:21:04 -0800 (PST) X-Google-Smtp-Source: ADFU+vtgylzPXP4UIIgUHJD7i34xd9Rv1dbkWEPMoXQTPt8J8Twm39DSLCxNlB1fpezBX/jjonOO X-Received: by 2002:a05:6830:1081:: with SMTP id y1mr5558201oto.367.1583396464075; Thu, 05 Mar 2020 00:21:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583396464; cv=none; d=google.com; s=arc-20160816; b=NNtRXbWZ0wTjOcoHp14ZQjwBa1YicUxON42szgqtBDsrKYPMDhQlLROORvRXxqDLPm NbEEMnIQX7kRUfIRHg97zyb0sOPDTr4Ec3Kmp0NLjBDHVcS12GxOmMn9GybcH9fu1djA rYwNTUfnuRxP6tHnSw2c7Q8sKcxWMdf3JzqpDenmJsy7PSm3iyB+LTkFgtvkM/CH1orX K7S+JkGcbBVxsxUx8TuK+HpvAl6eszdcdTCAQ8V5I1mzl0IBbjGTRvoszEvk7riboLW2 DAGhpJqwT72DGatvHq7Wwrdc4DA8ORRSja/xDPfJ+jRlTw3Pqw9yu+8CaBd9QRzr8zlf 9JIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=k9HkUhFYn1+h3FUkrGApXkMLDxlEv2B5rAwCtF/NaqQ=; b=hX+TaQxR782VbTSMvP5dHZI9AbXfefKl/1B8j4JA9UEoln2klsBE5zNYYYgKBDgs9b sImRMGIzJhiuMUG7m0PXHTdSeCn/ekjx4u8oZzSrhqJFfoy7+HvG7LWRPxqib55W9RkC ZUqAi+kPH2XIYCTJZyFV8RI2PwOCje8p0WXAolpYXExITv25ok28/dqirCoGTOdkZadt s74UvtTt0Q5yBz0V3bobOBD75JhMjiaLqXfY/kJBG3JPwnloZQIp7+Rlonx/cucN06jR BhFP6eQOqT2pGU6aBXgWnM+de0qsUWRONEgKZZOltLxGjt3sByGB+w30fHIhmgV3Xs73 5TdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@126.com header.s=s110527 header.b=jSZV6G8w; 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=126.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p7si3059046ota.299.2020.03.05.00.20.52; Thu, 05 Mar 2020 00:21:04 -0800 (PST) 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=@126.com header.s=s110527 header.b=jSZV6G8w; 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=126.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726271AbgCEIS5 (ORCPT + 99 others); Thu, 5 Mar 2020 03:18:57 -0500 Received: from mail-m963.mail.126.com ([123.126.96.3]:33768 "EHLO mail-m963.mail.126.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725844AbgCEIS5 (ORCPT ); Thu, 5 Mar 2020 03:18:57 -0500 X-Greylist: delayed 1919 seconds by postgrey-1.27 at vger.kernel.org; Thu, 05 Mar 2020 03:18:49 EST DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Subject:Date:Message-Id; bh=k9HkUhFYn1+h3FUkrG ApXkMLDxlEv2B5rAwCtF/NaqQ=; b=jSZV6G8wQJFoTL3AUqBp248iCElFbcoL0t 6c77OFpy7vZH0KQa4AdH2Ztd+ISy1SiiJUU6TmLFZ8eWNK2sC568G171JbSiiV8e szW6pA53Sitv+rxY+vMzsGS5bURWI3e/oZJ5GaUld3BVzmR2VVvIKAwQvxBXGtAz XTa9BeMOA= Received: from pek-lpd-ccm2.wrs.com (unknown [60.247.85.82]) by smtp8 (Coremail) with SMTP id NORpCgDH1toYrmBeqjl1GQ--.6848S2; Thu, 05 Mar 2020 15:45:34 +0800 (CST) From: Zhaolong Zhang To: Zhaolong Zhang , "Paul E. McKenney" , Josh Triplett , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Joel Fernandes Cc: rcu@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] rcu: Fix the (t=0 jiffies) false positive Date: Thu, 5 Mar 2020 15:45:57 +0800 Message-Id: <1583394357-11767-1-git-send-email-zhangzl2013@126.com> X-Mailer: git-send-email 1.8.3.1 X-CM-TRANSID: NORpCgDH1toYrmBeqjl1GQ--.6848S2 X-Coremail-Antispam: 1Uf129KBjvJXoWxJr48tr4DKrWxAw1DZr4kCrg_yoW8Kr17pa y7Ka47ta1UJF1vva47t3s5Xr1UJr4kXa47ta9Fy34Fva15JF4FqF90v34UKrWUur93WrWa vFyFyF9rAw4ktFUanT9S1TB71UUUUUDqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07j2_M3UUUUU= X-Originating-IP: [60.247.85.82] X-CM-SenderInfo: x2kd0wt2osiiat6rjloofrz/1tbitQTdz1pEAlS7TwAAsf Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Calculate 't' with the previously recorded 'gps' instead of 'gp_start'. Signed-off-by: Zhaolong Zhang --- kernel/rcu/tree_stall.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/rcu/tree_stall.h b/kernel/rcu/tree_stall.h index 55f9b84..4223b8b 100644 --- a/kernel/rcu/tree_stall.h +++ b/kernel/rcu/tree_stall.h @@ -371,7 +371,7 @@ static void rcu_check_gp_kthread_starvation(void) } } -static void print_other_cpu_stall(unsigned long gp_seq) +static void print_other_cpu_stall(unsigned long gp_seq, unsigned long gps) { int cpu; unsigned long flags; @@ -408,7 +408,7 @@ static void print_other_cpu_stall(unsigned long gp_seq) for_each_possible_cpu(cpu) totqlen += rcu_get_n_cbs_cpu(cpu); pr_cont("\t(detected by %d, t=%ld jiffies, g=%ld, q=%lu)\n", - smp_processor_id(), (long)(jiffies - rcu_state.gp_start), + smp_processor_id(), (long)(jiffies - gps), (long)rcu_seq_current(&rcu_state.gp_seq), totqlen); if (ndetected) { rcu_dump_cpu_stacks(); @@ -442,7 +442,7 @@ static void print_other_cpu_stall(unsigned long gp_seq) rcu_force_quiescent_state(); /* Kick them all. */ } -static void print_cpu_stall(void) +static void print_cpu_stall(unsigned long gps) { int cpu; unsigned long flags; @@ -467,7 +467,7 @@ static void print_cpu_stall(void) for_each_possible_cpu(cpu) totqlen += rcu_get_n_cbs_cpu(cpu); pr_cont("\t(t=%lu jiffies g=%ld q=%lu)\n", - jiffies - rcu_state.gp_start, + jiffies - gps, (long)rcu_seq_current(&rcu_state.gp_seq), totqlen); rcu_check_gp_kthread_starvation(); @@ -546,7 +546,7 @@ static void check_cpu_stall(struct rcu_data *rdp) cmpxchg(&rcu_state.jiffies_stall, js, jn) == js) { /* We haven't checked in, so go dump stack. */ - print_cpu_stall(); + print_cpu_stall(gps); if (rcu_cpu_stall_ftrace_dump) rcu_ftrace_dump(DUMP_ALL); @@ -555,7 +555,7 @@ static void check_cpu_stall(struct rcu_data *rdp) cmpxchg(&rcu_state.jiffies_stall, js, jn) == js) { /* They had a few time units to dump stack, so complain. */ - print_other_cpu_stall(gs2); + print_other_cpu_stall(gs2, gps); if (rcu_cpu_stall_ftrace_dump) rcu_ftrace_dump(DUMP_ALL); } -- 1.8.3.1