From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761878Ab3EDSD3 (ORCPT ); Sat, 4 May 2013 14:03:29 -0400 Received: from e31.co.us.ibm.com ([32.97.110.149]:38762 "EHLO e31.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757433Ab3EDSD1 (ORCPT ); Sat, 4 May 2013 14:03:27 -0400 Date: Sat, 4 May 2013 11:03:16 -0700 From: "Paul E. McKenney" To: Julian Anastasov Cc: Peter Zijlstra , Simon Horman , Eric Dumazet , Ingo Molnar , lvs-devel@vger.kernel.org, netdev@vger.kernel.org, netfilter-devel@vger.kernel.org, linux-kernel@vger.kernel.org, Pablo Neira Ayuso , Dipankar Sarma Subject: Re: [PATCH v2 1/2] sched: Add cond_resched_rcu_lock() helper Message-ID: <20130504180315.GB3659@linux.vnet.ibm.com> Reply-To: paulmck@linux.vnet.ibm.com References: <20130502072623.GE7521@dyad.programming.kicks-ass.net> <20130502173257.GX3780@linux.vnet.ibm.com> <20130502193409.GA3780@linux.vnet.ibm.com> <20130502223107.GB3780@linux.vnet.ibm.com> <20130503163045.GE3780@linux.vnet.ibm.com> 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: No X-Content-Scanned: Fidelis XPS MAILER x-cbid: 13050418-7282-0000-0000-000016D0380E Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, May 04, 2013 at 10:23:31AM +0300, Julian Anastasov wrote: > > Hello, > > On Fri, 3 May 2013, Paul E. McKenney wrote: > > > static inline int cond_resched_rcu(void) > > { > > #if defined(CONFIG_DEBUG_ATOMIC_SLEEP) || !defined(CONFIG_PREEMPT_RCU) > > rcu_read_unlock(); > > cond_resched(); > > rcu_read_lock(); > > #endif > > } > > > > This adds absolutely no overhead in non-debug builds of CONFIG_PREEMPT_RCU, > > does the checking in debug builds, and allows voluntary preemption in > > !CONFIG_PREEMPT_RCU builds. CONFIG_PROVE_RCU builds will check for an > > (illegal) outer rcu_read_lock() in CONFIG_PREEMPT_RCU builds, and you > > will get "scheduling while atomic" in response to an outer rcu_read_lock() > > in !CONFIG_PREEMPT_RCU builds. > > > > It also seems to me a lot simpler. > > > > Does this work, or am I still missing something? > > Works perfectly. Thanks! Tested CONFIG_PREEMPT_RCU=y/n, > the errors messages with extra RCU lock. Very good! Please send the patch along, and I will ack it. Thanx, Paul