Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1134584ybl; Fri, 16 Aug 2019 09:25:16 -0700 (PDT) X-Google-Smtp-Source: APXvYqyyxYgFutUFzrDbXHwmXz3jJn6uxdEFdB8+WSl/aHEdzHD9afaeUoeJRtjKhrFbIhiNuAp6 X-Received: by 2002:aa7:9ab6:: with SMTP id x22mr11785019pfi.80.1565972716911; Fri, 16 Aug 2019 09:25:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565972716; cv=none; d=google.com; s=arc-20160816; b=ckr1pmq0AcLvSGworFTfNlzY+BIDgbtNAnIYuBbqReZmUeJzRmIsSpX44QdAEvq7CT y1CdvvnXZRgp8+5ZG52IrHLglpyibKZfhrI1lW1wLOaUY/IYPvyI/r8dWUhPpGq75cf/ OniMzQBab1a25nj1d5/BIRUirArEppDntHt7JrGgMIHLT+gmUnQUNzU3Eo5NnoIIYggM xLhrw71XeKq9AdcL51dGVYPfc+pX0L6JhZ1vI3xfvBlrJzxK04PlMaiJZzlRvlCNZ6YW 7/QdbzPZ/JKNS8d8S4OyA/6mcYmd+4aJ6K0ziRTDa1mq7J2yOlteld2IYoWjew5KPsRT tLaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=+FnGUjvDduLwmUWcToVoaAXXHIij4xR404WzOvDXCGc=; b=qLtE0G56M8VnvRFsZaHzgF9tFkhEwdu7M253AjpSkZpeZhn88o1cEpT5cf76wZ2ibG DTV6s5ISs5bZT1TGr6hFLuckhSbtQbeSiu/ZE2dhvw3pQDNUp5btuLxLftL2U1Z1WO7q taBrkRX9rqaWQZlYT39god9eI1VJ30EdDat4UaW3P0MzNLQGxZ0GEyQTaANa9Q0/IARW au8Uez8YEEsrd3pQj+Fsy3NVi7FFW6ozJnVc1/UK0fcMxEW1vhN/pXvSZDZDZKC+kw24 hSN4g7saGHg9ADKCp93F5eFfk9VXezSIaEIYrczsnoqRj5KnkzvXm7qcP5y1/JL5f57z W8XA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=MTltNbiV; 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 j63si4027985pgd.493.2019.08.16.09.25.01; Fri, 16 Aug 2019 09:25:16 -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=MTltNbiV; 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 S1726884AbfHPQYX (ORCPT + 99 others); Fri, 16 Aug 2019 12:24:23 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:33482 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726469AbfHPQYX (ORCPT ); Fri, 16 Aug 2019 12:24:23 -0400 Received: by mail-pf1-f195.google.com with SMTP id g2so3390084pfq.0 for ; Fri, 16 Aug 2019 09:24:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=+FnGUjvDduLwmUWcToVoaAXXHIij4xR404WzOvDXCGc=; b=MTltNbiV9blPzssoSIvlKEyj8GXjlJa+fTvON9N33advNQcU11h1WD1WT/KRbmrvP3 vRLBlOKxwF0MBicin2hGRhH5vXXLB2sGtQm4sRn/bAyavToGE2ymMR767zs4j1UNdwy+ FyUzJVfIN8v/tO5tRuqG1dY5ILDNrbcyYKzxc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=+FnGUjvDduLwmUWcToVoaAXXHIij4xR404WzOvDXCGc=; b=nBqrjOrFGbqa8dYO0bZ0beGfIRtftHrWSioQ+Kmjdh+JU8RTGSVlBMhkyObGP/Xx0c A0vtoGDd1QpkDFUA3xCuotZguJpl1VVbK+sgZ5gDJKmMuupg47N86SQj6ZmdohJmK8EB JPfihoZwZIUedl2MN0b+SBZ5Cwp0P1yIsO0CYJSUJ2bpCPngeAaByy7OH0KaJwWpFBXz 7w4It87c2ItobFe/RVnlbpprzW9D0EtL1Malh7blzfPqayUeXF4S+FJMYqHvFWP38AiN yVaszlGQKNkAXJDil5P31WWzP0ciqsrVhGYTGo+VB4+h1oP++tWFwCN4gZp9oULJkI/h uMFw== X-Gm-Message-State: APjAAAXPc7wPB/7A2q15ePID56iLW5dp8116/9N4nDTZJHxPTuXmqyp/ U3Sm6wcF1yUp2pXoe8OTuO7H9YiJpT8= X-Received: by 2002:a62:cdc3:: with SMTP id o186mr11699752pfg.168.1565972662164; Fri, 16 Aug 2019 09:24:22 -0700 (PDT) Received: from localhost ([172.19.216.18]) by smtp.gmail.com with ESMTPSA id k3sm1538327pjo.3.2019.08.16.09.24.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Aug 2019 09:24:21 -0700 (PDT) Date: Fri, 16 Aug 2019 12:24:04 -0400 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" Cc: rcu@vger.kernel.org, frederic@kernel.org Subject: Re: [PATCH -rcu dev 3/3] RFC: rcu/tree: Read dynticks_nmi_nesting in advance Message-ID: <20190816162404.GB10481@google.com> References: <20190816025311.241257-1-joel@joelfernandes.org> <20190816025311.241257-3-joel@joelfernandes.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190816025311.241257-3-joel@joelfernandes.org> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Aug 15, 2019 at 10:53:11PM -0400, Joel Fernandes (Google) wrote: > 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; I believe the accidental sign extension / conversion from long to int was giving me an illusion since things started working well. Changing the 'int dnn' to 'long dnn' gives similar behavior as without this patch! At least I know now. Please feel free to ignore this particular RFC patch while I debug this more (over the weekend or early next week). The first 2 patches are good, just ignore this one. thanks, - Joel > > /* 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 >