Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753055AbbBKQLN (ORCPT ); Wed, 11 Feb 2015 11:11:13 -0500 Received: from e35.co.us.ibm.com ([32.97.110.153]:40448 "EHLO e35.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751878AbbBKQLL (ORCPT ); Wed, 11 Feb 2015 11:11:11 -0500 Date: Wed, 11 Feb 2015 08:11:05 -0800 From: "Paul E. McKenney" To: Alexander Gordeev Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/3] rcu: Remove fast path from __rcu_process_callbacks() Message-ID: <20150211161105.GG4166@linux.vnet.ibm.com> Reply-To: paulmck@linux.vnet.ibm.com References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15021116-0013-0000-0000-000008A6CF2C Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1730 Lines: 51 On Wed, Feb 11, 2015 at 03:42:38PM +0100, Alexander Gordeev wrote: > The standard code path accommodates a condition when no > RCU callbacks are ready to invoke. Since size of the code > is a priority for tiny RCU, remove the fast path. > > Cc: "Paul E. McKenney" > Signed-off-by: Alexander Gordeev Also a good point. The savings is small in production builds because the RCU_TRACE() statements are not compiled, but every little bit helps, and the simplification is good as well. Queued for 3.21. Thanx, Paul > --- > kernel/rcu/tiny.c | 11 ----------- > 1 file changed, 11 deletions(-) > > diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c > index d4e7fe5..069742d 100644 > --- a/kernel/rcu/tiny.c > +++ b/kernel/rcu/tiny.c > @@ -168,17 +168,6 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp) > unsigned long flags; > RCU_TRACE(int cb_count = 0); > > - /* If no RCU callbacks ready to invoke, just return. */ > - if (&rcp->rcucblist == rcp->donetail) { > - RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, 0, -1)); > - RCU_TRACE(trace_rcu_batch_end(rcp->name, 0, > - !!ACCESS_ONCE(rcp->rcucblist), > - need_resched(), > - is_idle_task(current), > - false)); > - return; > - } > - > /* Move the ready-to-invoke callbacks to a local list. */ > local_irq_save(flags); > RCU_TRACE(trace_rcu_batch_start(rcp->name, 0, rcp->qlen, -1)); > -- > 1.8.3.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/