From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752456AbdHHS5Z (ORCPT ); Tue, 8 Aug 2017 14:57:25 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:49068 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752427AbdHHS5W (ORCPT ); Tue, 8 Aug 2017 14:57:22 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org EDEBA60227 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=neeraju@codeaurora.org Subject: Re: [PATCH] rcu: Skip additional checks if rcu_cpu_stall_suppress is set To: paulmck@linux.vnet.ibm.com References: <1502212826-18846-1-git-send-email-neeraju@codeaurora.org> <20170808180208.GF3730@linux.vnet.ibm.com> Cc: josh@joshtriplett.org, rostedt@goodmis.org, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, linux-kernel@vger.kernel.org From: Neeraj Upadhyay Message-ID: Date: Wed, 9 Aug 2017 00:27:16 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <20170808180208.GF3730@linux.vnet.ibm.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/08/2017 11:32 PM, Paul E. McKenney wrote: > On Tue, Aug 08, 2017 at 10:50:26PM +0530, Neeraj Upadhyay wrote: >> If rcu_kick_kthreads is set, and gp is in progress, check_cpu_stall() >> does checks to figure out whether jiffies is past rsp->jiffies_stall, >> doing ordered accesses to avoid any false positives for new grace >> period initialization after a sufficiently large idle period. This >> extra processing can be skipped if rcu_cpu_stall_suppress is set. > Just to make sure I understand, the concern is that someone might have > booted with rcupdate.rcu_cpu_stall_suppress=1 (thus suppressing the RCU > CPU stall debugging warnings implemented later in check_cpu_stall()), > but later decided to also boot with rcutree.rcu_kick_kthreads=1 (thus > enabling kicking kthreads which check for RCU's grace-period kthreads > not being properly awakened)? > > My immediate reaction is that if there is not much point in specifying > both rcutree.rcu_kick_kthreads=1 and rcupdate.rcu_cpu_stall_suppress=1. > But is there some use case that I am missing? > > Thanx, Paul For boot time configuration, agree, there isn't much point in enabling both options. In addition to boot time, rcu_cpu_stall_suppress can be temporarily enabled during some operations like sysrq; but this may not be a use case worth consideration. > >> Fixes: 8c7c4829a81c ("rcu: Awaken grace-period kthread if too long since FQS") >> Signed-off-by: Neeraj Upadhyay >> --- >> kernel/rcu/tree.c | 7 +++++-- >> 1 file changed, 5 insertions(+), 2 deletions(-) >> >> diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c >> index 51d4c3a..91b7552 100644 >> --- a/kernel/rcu/tree.c >> +++ b/kernel/rcu/tree.c >> @@ -1562,10 +1562,13 @@ static void check_cpu_stall(struct rcu_state *rsp, struct rcu_data *rdp) >> unsigned long js; >> struct rcu_node *rnp; >> >> - if ((rcu_cpu_stall_suppress && !rcu_kick_kthreads) || >> - !rcu_gp_in_progress(rsp)) >> + if (!rcu_gp_in_progress(rsp)) >> return; >> rcu_stall_kick_kthreads(rsp); >> + >> + if (rcu_cpu_stall_suppress) >> + return; >> + >> j = jiffies; >> >> /* >> -- >> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a >> member of the Code Aurora Forum, hosted by The Linux Foundation >> -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation