From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753761AbbGAOAr (ORCPT ); Wed, 1 Jul 2015 10:00:47 -0400 Received: from e37.co.us.ibm.com ([32.97.110.158]:58111 "EHLO e37.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750798AbbGAOAm (ORCPT ); Wed, 1 Jul 2015 10:00:42 -0400 X-Helo: d03dlp01.boulder.ibm.com X-MailFrom: paulmck@linux.vnet.ibm.com X-RcptTo: linux-kernel@vger.kernel.org Date: Wed, 1 Jul 2015 07:00:31 -0700 From: "Paul E. McKenney" To: Peter Zijlstra Cc: josh@joshtriplett.org, linux-kernel@vger.kernel.org, mingo@kernel.org, laijs@cn.fujitsu.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, tglx@linutronix.de, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, dvhart@linux.intel.com, fweisbec@gmail.com, oleg@redhat.com, bobby.prani@gmail.com Subject: Re: [PATCH RFC tip/core/rcu 0/5] Expedited grace periods encouraging normal ones Message-ID: <20150701140031.GB3717@linux.vnet.ibm.com> Reply-To: paulmck@linux.vnet.ibm.com References: <20150630214805.GA7795@linux.vnet.ibm.com> <20150630220014.GA10916@cloud> <20150630221224.GQ3717@linux.vnet.ibm.com> <20150630234633.GA11450@cloud> <20150701100939.GR19282@twins.programming.kicks-ass.net> <20150701105511.GN18673@twins.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150701105511.GN18673@twins.programming.kicks-ass.net> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15070114-0025-0000-0000-0000104A41C6 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 01, 2015 at 12:55:11PM +0200, Peter Zijlstra wrote: > On Wed, Jul 01, 2015 at 12:09:39PM +0200, Peter Zijlstra wrote: > > On Tue, Jun 30, 2015 at 04:46:33PM -0700, josh@joshtriplett.org wrote: > > > Consider it a fairly weak concern against. Increasing performance seems > > > like a good thing in general; I just don't relish the future "feels less > > > responsive" bug reports that take a long time to track down and turn out > > > to be "this completely unrelated driver was loaded and started using > > > expedited grace periods". > > > > random drivers, or for that matter, new-code of any sort. Should _NOT_ > > be using expedited grace periods. > > > > They're a horrid hack only suitable for unfixable ABI. > > Let me repeat, just in case I've not been clear. Expedited grace periods > are _BAD_ and should be avoided at all costs. That is a bit extreme, Peter. There should not be a problem using them for operations that are not done while the system is running the main workload. Which is why I am OK with synchronize_net() using synchronize_rcu_expedited() when RTNL is held. The operations that do that are setup/configuration operations that you won't normally be doing while your HPC or realtime workload is running. I believe that many of the other uses are similar. > They perturb the _entire_ machine. The portion of the machine that is non-idle and not executing in nohz_full userspace, that is. So nohz_full usermode execution is unperturbed by expedited grace periods. In addition, synchronize_srcu_expedited() does -not- perturb anything other than the task actually executing synchronize_srcu_expedited(). So those read-side memory barriers are gaining you something, and there should not be much need to push back on synchronize_srcu_expedited(). > Yes we can polish the turd, but in the end its still a turd. And I intend to polish it even more. ;-) > Sadly people seem to have taken a liking to them, ooh a make RCU go > faster button. And there's not been much if any pushback on people using > it. There aren't all that many uses, so I don't believe that people are abusing it that much. There are only four non-RCU uses of synchronize_rcu_expedited() and only two non-RCU uses of synchronize_sched_expedited(). In contrast, there are a couple hundred uses of synchronize_rcu() and about 40 uses of synchronize_sched(). So I am not seeing much evidence of wanton use of either synchronize_srcu() or synchronize_sched(). Are a huge pile of them coming in this merge window or something? What raised your concerns on this issue? Thanx, Paul