From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752480AbcETPZi (ORCPT ); Fri, 20 May 2016 11:25:38 -0400 Received: from mx2.suse.de ([195.135.220.15]:50877 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751428AbcETPZh (ORCPT ); Fri, 20 May 2016 11:25:37 -0400 Date: Fri, 20 May 2016 08:25:24 -0700 From: Davidlohr Bueso To: Peter Zijlstra Cc: manfred@colorfullife.com, Waiman.Long@hpe.com, mingo@kernel.org, torvalds@linux-foundation.org, ggherdovich@suse.com, mgorman@techsingularity.net, linux-kernel@vger.kernel.org Subject: Re: sem_lock() vs qspinlocks Message-ID: <20160520152524.GC7086@linux-uzut.site> References: <20160520053926.GC31084@linux-uzut.site> <20160520074946.GA3193@twins.programming.kicks-ass.net> <20160520150049.GB7086@linux-uzut.site> <20160520150505.GG3193@twins.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <20160520150505.GG3193@twins.programming.kicks-ass.net> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 20 May 2016, Peter Zijlstra wrote: >On Fri, May 20, 2016 at 08:00:49AM -0700, Davidlohr Bueso wrote: >> On Fri, 20 May 2016, Peter Zijlstra wrote: >> >> >On Thu, May 19, 2016 at 10:39:26PM -0700, Davidlohr Bueso wrote: >> >> In addition, this makes me wonder if queued_spin_is_locked() should then be: >> >> >> >>- return atomic_read(&lock->val); >> >>+ return atomic_read(&lock->val) & _Q_LOCKED_MASK; >> >> >> >>And avoid considering pending waiters as locked. >> > >> >Probably >> >> Similarly, and I know you hate it, but afaict, then semantically >> queued_spin_is_contended() ought to be: >> >> - return atomic_read(&lock->val) & ~_Q_LOCKED_MASK; >> + return atomic_read(&lock->val); > >Nah, that would make it return true for (0,0,1), ie. uncontended locked. Right, and we want: (*, 1, 1) (*, 1, 0) (n, 0, 0) I may be missing some combinations, its still early.