Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934704AbcKON7W (ORCPT ); Tue, 15 Nov 2016 08:59:22 -0500 Received: from bombadil.infradead.org ([198.137.202.9]:35916 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752731AbcKON7U (ORCPT ); Tue, 15 Nov 2016 08:59:20 -0500 Date: Tue, 15 Nov 2016 14:59:12 +0100 From: Peter Zijlstra To: Mathieu Desnoyers Cc: "Paul E. McKenney" , linux-kernel , Ingo Molnar , Lai Jiangshan , dipankar , Andrew Morton , Josh Triplett , Thomas Gleixner , rostedt , David Howells , Eric Dumazet , dvhart , fweisbec , Oleg Nesterov , bobby prani , ldr709 Subject: Re: [PATCH RFC tip/core/rcu] SRCU rewrite Message-ID: <20161115135912.GJ3142@twins.programming.kicks-ass.net> References: <20161114183636.GA28589@linux.vnet.ibm.com> <20161115075113.GN3142@twins.programming.kicks-ass.net> <1857730044.1901.1479218090893.JavaMail.zimbra@efficios.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1857730044.1901.1479218090893.JavaMail.zimbra@efficios.com> User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1055 Lines: 21 On Tue, Nov 15, 2016 at 01:54:50PM +0000, Mathieu Desnoyers wrote: > ----- On Nov 15, 2016, at 2:51 AM, Peter Zijlstra peterz@infradead.org wrote: > > > On Mon, Nov 14, 2016 at 10:36:36AM -0800, Paul E. McKenney wrote: > >> SRCU uses two per-cpu counters: a nesting counter to count the number of > >> active critical sections, and a sequence counter to ensure that the nesting > >> counters don't change while they are being added together in > >> srcu_readers_active_idx_check(). > >> > >> This patch instead uses per-cpu lock and unlock counters. Because the both > >> counters only increase and srcu_readers_active_idx_check() reads the unlock > >> counter before the lock counter, this achieves the same end without having > >> to increment two different counters in srcu_read_lock(). This also saves a > >> smp_mb() in srcu_readers_active_idx_check(). > > > > A very small improvement... I feel SRCU has much bigger issues :/ > > Do you have specific issues in mind ? The smp_mb()s in read_{un,}lock() and the lock in call_srcu() come to mind.