Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030662AbbD1SGL (ORCPT ); Tue, 28 Apr 2015 14:06:11 -0400 Received: from cantor2.suse.de ([195.135.220.15]:36638 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030429AbbD1SGJ (ORCPT ); Tue, 28 Apr 2015 14:06:09 -0400 Message-ID: <1430244355.2004.14.camel@stgolabs.net> Subject: Re: [PATCH v3] locking/rwsem: reduce spinlock contention in wakeup after up_read/up_write From: Davidlohr Bueso To: Jason Low Cc: Peter Zijlstra , Waiman Long , Ingo Molnar , linux-kernel@vger.kernel.org, Scott J Norton , Douglas Hatch Date: Tue, 28 Apr 2015 11:05:55 -0700 In-Reply-To: <1430243401.4463.4.camel@j-VirtualBox> References: <1429898069-28907-1-git-send-email-Waiman.Long@hp.com> <20150428171734.GH23123@twins.programming.kicks-ass.net> <1430243401.4463.4.camel@j-VirtualBox> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.11 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1139 Lines: 36 On Tue, 2015-04-28 at 10:50 -0700, Jason Low wrote: > On Tue, 2015-04-28 at 19:17 +0200, Peter Zijlstra wrote: > > > To me it makes more sense to reverse these two branches (identical code > > wise of course) and put the special case first. > > > > Alternatively we could also do something like the below, which to my > > eyes looks a little better still, but I don't care too much. > > > > if (rwsem_has_spinner(sem)) { > > /* > > * comment ... > > */ > > smp_rmb(); > > if (!raw_spin_trylock_irqsave(&sem->wait_lock, flags)) > > return sem; > > goto locked; > > } > > > > raw_spin_lock_irqsave(&sem->wait_lock, flags); > > locked: > > How about putting this into its own function: I'd actually prefer reusing the current function. We have so many utility functions that we've over-encapsulated the code a bit, it makes reading _harder_, imho. Thanks, Davidlohr -- 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/