All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Jason Low <jason.low2@hp.com>
Cc: Waiman Long <waiman.long@hp.com>,
	Davidlohr Bueso <davidlohr@hp.com>,
	torvalds@linux-foundation.org, paulmck@linux.vnet.ibm.com,
	mingo@kernel.org, linux-kernel@vger.kernel.org, riel@redhat.com,
	akpm@linux-foundation.org, hpa@zytor.com, andi@firstfloor.org,
	James.Bottomley@hansenpartnership.com, rostedt@goodmis.org,
	tim.c.chen@linux.intel.com, aswin@hp.com, scott.norton@hp.com,
	chegu_vinod@hp.com
Subject: Re: [RFC] Cancellable MCS spinlock rework
Date: Fri, 4 Jul 2014 09:51:22 +0200	[thread overview]
Message-ID: <20140704075122.GY19379@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <1404436043.8764.95.camel@j-VirtualBox>

[-- Attachment #1: Type: text/plain, Size: 1614 bytes --]

On Thu, Jul 03, 2014 at 06:07:23PM -0700, Jason Low wrote:
> On Thu, 2014-07-03 at 16:35 -0400, Waiman Long wrote:
> 
> > I do see a point in reducing the size of the rwsem structure. However, I 
> > don't quite understand the point of converting pointers in the 
> > optimistic_spin_queue structure to atomic_t. The structure is cacheline 
> > aligned and there is no saving in size. Converting them to atomic_t does 
> > have a bit of additional overhead of converting the encoded cpu number 
> > back to the actual pointer.
> > 
> > So my suggestion is to just change what is stored in the mutex and rwsem 
> > structure to atomic_t, but keep the pointers in the 
> > optimistic_spin_queue structure.
> 
> Peter, would you prefer going with the above?
> 
> If we were to keep the pointers to the next and prev nodes in the struct
> optimistic_spin_queue instead of converting them to atomic_t to store
> their cpu #, we'd still need to keep track of the cpu #. In the unqueue
> phase of osq_lock, we might have to reload prev = node->prev which we
> then may cmpxchg() it with the lock tail.
> 
> The method we can think of so far would be to add a regular int variable
> to optimistic_spin_queue and initialize it to the CPU #, during the time
> we also initialize node->locked and node->next at the beginning of
> osq_lock. The cost wouldn't be much of an issue since
> optimistic_spin_queue is cache aligned.

Let me try and have an actual look at the patch; I'm in the tail end of
a flu and my head isn't quite set for details, but I'll buckle up and go
look, gimme a few :-)

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2014-07-04  7:51 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-02 16:21 [RFC] Cancellable MCS spinlock rework Jason Low
2014-07-02 16:27 ` Peter Zijlstra
2014-07-02 16:59   ` Jason Low
2014-07-02 17:23     ` Peter Zijlstra
2014-07-02 17:30       ` Jason Low
2014-07-03  4:39         ` Jason Low
2014-07-03  7:31           ` Peter Zijlstra
2014-07-03 15:31           ` Linus Torvalds
2014-07-03 15:35             ` Linus Torvalds
2014-07-03 18:22               ` Jason Low
2014-07-03  7:31         ` Peter Zijlstra
2014-07-03 17:09           ` Davidlohr Bueso
2014-07-03 18:34             ` Jason Low
2014-07-03 20:35               ` Waiman Long
2014-07-03 20:51                 ` Jason Low
2014-07-03 21:35                   ` Waiman Long
2014-07-03 21:54                     ` Jason Low
2014-07-04  7:49                   ` Peter Zijlstra
2014-07-04  1:07                 ` Jason Low
2014-07-04  7:51                   ` Peter Zijlstra [this message]
2014-07-07 17:22                     ` Jason Low
2014-07-04  9:17                   ` Peter Zijlstra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140704075122.GY19379@twins.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=aswin@hp.com \
    --cc=chegu_vinod@hp.com \
    --cc=davidlohr@hp.com \
    --cc=hpa@zytor.com \
    --cc=jason.low2@hp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=riel@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=scott.norton@hp.com \
    --cc=tim.c.chen@linux.intel.com \
    --cc=torvalds@linux-foundation.org \
    --cc=waiman.long@hp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.