mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Jason Low <jason.low2@hpe.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Waiman Long <waiman.long@hpe.com>,
	Ding Tianhong <dingtianhong@huawei.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Will Deacon <Will.Deacon@arm.com>, Ingo Molnar <mingo@redhat.com>,
	Imre Deak <imre.deak@intel.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Tim Chen <tim.c.chen@linux.intel.com>,
	"Paul E. McKenney" <paulmck@us.ibm.com>,
	jason.low2@hp.com
Subject: Re: [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex
Date: Tue, 23 Aug 2016 18:57:39 +0200	[thread overview]
Message-ID: <20160823165739.GQ10153@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <1471970103.2381.51.camel@j-VirtualBox>

On Tue, Aug 23, 2016 at 09:35:03AM -0700, Jason Low wrote:
> On Tue, 2016-08-23 at 09:17 -0700, Davidlohr Bueso wrote:
> > What's the motivation here? Is it just to unify counter and owner for
> > the starvation issue? If so, is this really the path we wanna take for
> > a small debug corner case?
> 
> And we thought our other patch was a bit invasive  :-)

So I've wanted to do something like this for a while now, and Linus
saying he wanted to always enable the spinning and basically reduce
special cases made me bite the bullet and just do it to see what it
would look like.

So it not only unifies counter and owner for the starvation case, it
does so to allow spinning and debug as well as lock handoff.
It collapses the whole count+owner+yield_to_owner into a single
variable.

It obviously is a tad invasive, but it does make things more similar to
rt-mutex and pi futex, both of which track the owner and pending in the
primary 'word'.

That said, I don't particularly like the new mutex_unlock() code, its
rather more heavy than I would like, although typically the word is
uncontended at unlock and we'd only need a single go at the
cmpxchg-loop.

  reply	other threads:[~2016-08-23 16:58 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-23 12:46 Peter Zijlstra
2016-08-23 12:46 ` [RFC][PATCH 1/3] locking/mutex: Rework mutex::owner Peter Zijlstra
2016-08-23 19:55   ` Waiman Long
2016-08-23 20:52     ` Tim Chen
2016-08-23 21:03       ` Peter Zijlstra
2016-08-23 21:09     ` Peter Zijlstra
2016-08-23 20:17   ` Waiman Long
2016-08-23 20:31     ` Peter Zijlstra
2016-08-24  9:56   ` Will Deacon
2016-08-24 15:34     ` Peter Zijlstra
2016-08-24 16:52       ` Peter Zijlstra
2016-08-24 16:54         ` Will Deacon
2016-08-23 12:46 ` [RFC][PATCH 2/3] locking/mutex: Allow MUTEX_SPIN_ON_OWNER when DEBUG_MUTEXES Peter Zijlstra
2016-08-23 12:46 ` [RFC][PATCH 3/3] locking/mutex: Add lock handoff to avoid starvation Peter Zijlstra
2016-08-23 12:56   ` Peter Zijlstra
     [not found]   ` <57BCA869.1050501@hpe.com>
2016-08-23 20:32     ` Peter Zijlstra
2016-08-24 19:50       ` Waiman Long
2016-08-25  8:11         ` Peter Zijlstra
2016-08-23 16:17 ` [RFC][PATCH 0/3] locking/mutex: Rewrite basic mutex Davidlohr Bueso
2016-08-23 16:35   ` Jason Low
2016-08-23 16:57     ` Peter Zijlstra [this message]
2016-08-23 19:36       ` Waiman Long
2016-08-23 20:41         ` Peter Zijlstra
2016-08-23 22:34           ` Waiman Long
2016-08-24  1:13     ` Jason Low
2016-08-25 12:32       ` Peter Zijlstra
2016-08-25 15:43       ` Peter Zijlstra
2016-08-25 16:33         ` Waiman Long
2016-08-25 16:35           ` Peter Zijlstra
2016-08-27 18:27             ` Ingo Molnar
2016-08-25 19:11         ` huang ying
2016-08-25 19:26           ` Peter Zijlstra
2016-08-23 18:53   ` Linus Torvalds
2016-08-23 20:34     ` 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=20160823165739.GQ10153@twins.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=Will.Deacon@arm.com \
    --cc=dave@stgolabs.net \
    --cc=dingtianhong@huawei.com \
    --cc=imre.deak@intel.com \
    --cc=jason.low2@hp.com \
    --cc=jason.low2@hpe.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=paulmck@us.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=tim.c.chen@linux.intel.com \
    --cc=torvalds@linux-foundation.org \
    --cc=waiman.long@hpe.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome