Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp388795ybl; Thu, 15 Aug 2019 19:54:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqw25ZiVdsn4+hhDK9aCEfhH0OHh73gzIEWu+F7pjpkrWd7jhyHI0UpAB631N7e1uNXBIfI0 X-Received: by 2002:aa7:946d:: with SMTP id t13mr8778665pfq.121.1565924073632; Thu, 15 Aug 2019 19:54:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565924073; cv=none; d=google.com; s=arc-20160816; b=hWYJjqeOSReHXkHHNgOHdH3zuJcpJSIiERwYlprPcsKTuMYAEiCezdI55e66ziyndm UkROSLVhsyx3u/8M2TNkQfQfxWJTU+HamigikleIcxZt6d1ikWutYOBVOO8WCUBsfiQb Q9JloK3z+IdNzU69x6uMtezeIqCETJyxQikvmKNWWrn7+59jWE5KQPgEgD8CV193Yt5f V2orSxffyhNdVmRNPqfWTW/BeluAzfw8sLGKo1KZAjyurV2ectlaUVRnvrJn/2dQL7k8 aGO3r7zAAUAKkPYeYC93WKwzUzwaJkVPNa+n1srQoVliTdSvE7U0RtlHZXrdskS8w6q5 XBig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=vQhzhmYsBEIBgfK9bAXXCgiV+s/eGGEAcUASy+K8Kx8=; b=UbECEneVrvGR+/0LtlqwfWglb+ENOz9TW3rdjxYokJfD0bFvkHOpyY446bNr4J6WON LE0eO5zuJAi/vBBBeGhpvxORHEDKVehxMT6b6DJF8xgxkm2ZywiyfjoU6Hr6Pj8wIwXV NkKZ8FAzQwk+CS+l94lpUCKwv5xhiYBtLbFPheDCrU7+qToyV/Ch4jOm0dVgMps/frk7 dAjtdoIHUspCmRbBnFjWhoF3rGE41owowbbbSlDxn0urfCUphmS4Rq+Xg1H0kKYTHcAv g41m9Bwo8w1eVrk43TtwQUP44pnsx0MIudQV96QsiUWGuVmnitvmcpdpriLIfbBtC4ea Om/A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=fn+0WIoH; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 6si2889853pgb.201.2019.08.15.19.54.18; Thu, 15 Aug 2019 19:54:33 -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=@joelfernandes.org header.s=google header.b=fn+0WIoH; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726688AbfHPCxo (ORCPT + 99 others); Thu, 15 Aug 2019 22:53:44 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:41670 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726556AbfHPCxl (ORCPT ); Thu, 15 Aug 2019 22:53:41 -0400 Received: by mail-pf1-f196.google.com with SMTP id 196so2337599pfz.8 for ; Thu, 15 Aug 2019 19:53:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vQhzhmYsBEIBgfK9bAXXCgiV+s/eGGEAcUASy+K8Kx8=; b=fn+0WIoH0hb2mJMlDjd6wAjb/WOyqALGh81FXElnV2+KThoCDaOiIEpWLr/jdFFK2h CZDJKXh/TsicRfPYvwDlVufv6EitdexkLe834jFlqA38Z8o+a5C5o/h0mIIB498qllEI v5SOrflJbA7ZdEYbdwgjEoYLGRWruEPQaAJJw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vQhzhmYsBEIBgfK9bAXXCgiV+s/eGGEAcUASy+K8Kx8=; b=YZvCxg/J/K9kTt0I1h8b/dyeBikaFV9E5J8rbu/M/iC+5wJcAADDQXFr5+k5t9aIBN Jjl/GaTzP9XZqz6RCQeV+RfB9QGE/DOgUqy2SY8CfkH14rCuAqLxhksnjyPbDUDEs1Du llvyphntWGqo4VMhJUWLn27tmcncceax6myXyaOSiKEffFpAAQ0TX72GwPnoMcvVcre9 r2KHlx1e0C0qj2XxMxNfIZmyhoPunS2/XWT/U6s/iDGfdwkOFjdwJ3EY+0Y164SA8MGp Sz+ZDedSjNm9KJw97WoD0DcFwxnTBSMueOoJgRZlG59Au0Amabfqj8cfHjLOsHWMa++9 Fgug== X-Gm-Message-State: APjAAAXXI7qwvHBTjhz+jC9nmTZRGs7iUbrQPqKi7E98YkaNsm83pGmw y06yKPRyWcKw3yg2tPiJWKkAPDqSfzE= X-Received: by 2002:a63:6f81:: with SMTP id k123mr6067821pgc.12.1565924020785; Thu, 15 Aug 2019 19:53:40 -0700 (PDT) Received: from joelaf.cam.corp.google.com ([172.19.216.18]) by smtp.gmail.com with ESMTPSA id v14sm4181258pfm.164.2019.08.15.19.53.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Aug 2019 19:53:40 -0700 (PDT) From: "Joel Fernandes (Google)" To: linux-kernel@vger.kernel.org Cc: "Joel Fernandes (Google)" , rcu@vger.kernel.org, "Paul E. McKenney" , frederic@kernel.org Subject: [PATCH -rcu dev 3/3] RFC: rcu/tree: Read dynticks_nmi_nesting in advance Date: Thu, 15 Aug 2019 22:53:11 -0400 Message-Id: <20190816025311.241257-3-joel@joelfernandes.org> X-Mailer: git-send-email 2.23.0.rc1.153.gdeed80330f-goog In-Reply-To: <20190816025311.241257-1-joel@joelfernandes.org> References: <20190816025311.241257-1-joel@joelfernandes.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I really cannot explain this patch, but without it, the "else if" block just doesn't execute thus causing the tick's dep mask to not be set and causes the tick to be turned off. I tried various _ONCE() macros but the only thing that works is this patch. Signed-off-by: Joel Fernandes (Google) --- kernel/rcu/tree.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 856d3c9f1955..ac6bcf7614d7 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -802,6 +802,7 @@ static __always_inline void rcu_nmi_enter_common(bool irq) { struct rcu_data *rdp = this_cpu_ptr(&rcu_data); long incby = 2; + int dnn = rdp->dynticks_nmi_nesting; /* Complain about underflow. */ WARN_ON_ONCE(rdp->dynticks_nmi_nesting < 0); @@ -826,7 +827,7 @@ static __always_inline void rcu_nmi_enter_common(bool irq) incby = 1; } else if (tick_nohz_full_cpu(rdp->cpu) && - !rdp->dynticks_nmi_nesting && + !dnn && rdp->rcu_urgent_qs && !rdp->rcu_forced_tick) { rdp->rcu_forced_tick = true; tick_dep_set_cpu(rdp->cpu, TICK_DEP_BIT_RCU); -- 2.23.0.rc1.153.gdeed80330f-goog