From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934742AbcKPExe (ORCPT ); Tue, 15 Nov 2016 23:53:34 -0500 Received: from LGEAMRELO12.lge.com ([156.147.23.52]:59178 "EHLO lgeamrelo12.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932297AbcKPExd (ORCPT ); Tue, 15 Nov 2016 23:53:33 -0500 X-Original-SENDERIP: 156.147.1.127 X-Original-MAILFROM: byungchul.park@lge.com X-Original-SENDERIP: 10.177.222.33 X-Original-MAILFROM: byungchul.park@lge.com Date: Wed, 16 Nov 2016 13:49:31 +0900 From: Byungchul Park To: paulmck@linux.vnet.ibm.com, josh@joshtriplett.org, rostedt@goodmis.org, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH] rcu: Avoid unnecessary contention of rcu node lock Message-ID: <20161116044931.GD2279@X58A-UD3R> References: <1478681833-23397-1-git-send-email-byungchul.park@lge.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1478681833-23397-1-git-send-email-byungchul.park@lge.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Nov 09, 2016 at 05:57:13PM +0900, Byungchul Park wrote: > It's unnecessary to try to print stacks of blocked tasks in the case > that ndetected == 0. Furthermore, calling rcu_print_detail_task_stall() > causes to acquire rnp locks as many times as the number of leaf nodes > plus one for root node. It's unnecessary at all in the case. Hello, I have two questions. Could you answer them? 1. What do you think about this patch? 2. Is there a tree where patches about rcu are pulled into, before being pulled into mainline tree? For example, tip tree in case of scheduler patches. It would be appriciated if you answer them. Thank you in advance, Byungchul > > Signed-off-by: Byungchul Park > --- > kernel/rcu/tree.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > index 287f468..ab2f743 100644 > --- a/kernel/rcu/tree.c > +++ b/kernel/rcu/tree.c > @@ -1374,6 +1374,9 @@ static void print_other_cpu_stall(struct rcu_state *rsp, unsigned long gpnum) > (long)rsp->gpnum, (long)rsp->completed, totqlen); > if (ndetected) { > rcu_dump_cpu_stacks(rsp); > + > + /* Complain about tasks blocking the grace period. */ > + rcu_print_detail_task_stall(rsp); > } else { > if (READ_ONCE(rsp->gpnum) != gpnum || > READ_ONCE(rsp->completed) == gpnum) { > @@ -1390,9 +1393,6 @@ static void print_other_cpu_stall(struct rcu_state *rsp, unsigned long gpnum) > } > } > > - /* Complain about tasks blocking the grace period. */ > - rcu_print_detail_task_stall(rsp); > - > rcu_check_gp_kthread_starvation(rsp); > > panic_on_rcu_stall(); > -- > 1.9.1