Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932253AbdI1Pjd (ORCPT ); Thu, 28 Sep 2017 11:39:33 -0400 Received: from omzsmtpe02.verizonbusiness.com ([199.249.25.209]:55807 "EHLO omzsmtpe02.verizonbusiness.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751921AbdI1Pjb (ORCPT ); Thu, 28 Sep 2017 11:39:31 -0400 From: "Levin, Alexander (Sasha Levin)" X-Host: ranger.odc.vzwcorp.com To: "Paul E. McKenney" CC: Sasha Levin , "linux-kernel@vger.kernel.org List" , Ingo Molnar , "jiangshanlai@gmail.com" , "dipankar@in.ibm.com" , Andrew Morton , "Mathieu Desnoyers" , Josh Triplett , Thomas Gleixner , Peter Zijlstra , Steven Rostedt , "dhowells@redhat.com" , Eric Dumazet , =?iso-8859-1?Q?Fr=E9d=E9ric_Weisbecker?= , Oleg Nesterov , "bobby.prani@gmail.com" Subject: Re: [PATCH v3 tip/core/rcu 40/40] rcu: Make non-preemptive schedule be Tasks RCU quiescent state Thread-Topic: [PATCH v3 tip/core/rcu 40/40] rcu: Make non-preemptive schedule be Tasks RCU quiescent state Thread-Index: AQHTOG/NfHLOZv7V+U2m4ePQIM8l0Q== Date: Thu, 28 Sep 2017 15:38:16 +0000 Message-ID: <20170928153813.7cernglt2d7umhpe@sasha-lappy> References: <20170419165805.GB10874@linux.vnet.ibm.com> <1492621117-13939-40-git-send-email-paulmck@linux.vnet.ibm.com> <20170928123055.GI3521@linux.vnet.ibm.com> In-Reply-To: <20170928123055.GI3521@linux.vnet.ibm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: NeoMutt/20170113 (1.7.2) x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.144.60.250] Content-Type: text/plain; charset="iso-8859-1" Content-ID: <806636CFE7D47F4EB92AED9F113BA2FE@vzwcorp.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by nfs id v8SFeBb8030510 Content-Length: 1533 Lines: 38 On Thu, Sep 28, 2017 at 05:30:55AM -0700, Paul E. McKenney wrote: >On Thu, Sep 28, 2017 at 02:37:20AM -0700, Sasha Levin wrote: >> On Wed, Apr 19, 2017 at 9:58 AM, Paul E. McKenney >> wrote: >> > Currently, a call to schedule() acts as a Tasks RCU quiescent state >> > only if a context switch actually takes place. However, just the >> > call to schedule() guarantees that the calling task has moved off of >> > whatever tracing trampoline that it might have been one previously. >> > This commit therefore plumbs schedule()'s "preempt" parameter into >> > rcu_note_context_switch(), which then records the Tasks RCU quiescent >> > state, but only if this call to schedule() was -not- due to a preemption. >> > >> > To avoid adding overhead to the common-case context-switch path, >> > this commit hides the rcu_note_context_switch() check under an existing >> > non-common-case check. >> > >> > Suggested-by: Steven Rostedt >> > Signed-off-by: Paul E. McKenney >> >> Hey Paul, >> >> I'm seeing the following on the latest -next kernel, and suspect it's >> caused bit this patch: > >Hmmm... kernel/rcu/tree_plugin.h:329 thinks that someone slept (as opposed >to was preempted) in an RCU read-side critical section. > >If this is reproducible, could you please enable lockdep if you are not >already doing so? lockdep was on, as far as I can tell. It happened once in ~3 weeks of fuzzing, so not sure how easily I can reproduce. -- Thanks, Sasha