linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Darren Hart <dvhltc@us.ibm.com>
To: john cooper <john.cooper@third-harmonic.com>
Cc: "Peter W. Morreale" <pmorreale@novell.com>,
	rostedt@goodmis.org, "lkml," <linux-kernel@vger.kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Gregory Haskins <ghaskins@novell.com>,
	Sven-Thorsten Dietrich <sdietrich@novell.com>,
	Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
	Eric Dumazet <eric.dumazet@gmail.com>,
	Chris Mason <chris.mason@oracle.com>,
	john cooper <john.cooper@redhat.com>
Subject: Re: RFC: Ideal Adaptive Spinning Conditions
Date: Mon, 05 Apr 2010 07:06:42 -0700	[thread overview]
Message-ID: <4BB9EE72.3010902@us.ibm.com> (raw)
In-Reply-To: <4BB7822F.1000100@third-harmonic.com>

john cooper wrote:
> Darren Hart wrote:
>> Right, and I'm looking to provide some kernel assistance for userspace
>> spinlocks here, and am targeting short lived critical sections as well.
> 
> What did you have in mind beyond existing mechanisms
> which address sibling contention?
> 
> One scenario which AFAICT isn't yet addressed is that
> of a userspace spin lock holder taking a scheduling
> preemption which may result in other threads piling up
> on the lock orders of magnitude beyond normal wait times,
> until the lock holder is rescheduled.  

That is an excellent example.

Another is the highly fragile performance characteristics of spinlocks 
with sched_yield() implementations lead to. As sched_yield 
implementations change, the scheduling behavior of the spinning tasks 
also changes. As the number of cores grows, more performance tuning is 
required. Sched_yield() essentially allows the spinner to spin for a 
time and then get off the cpu for a time - but it doesn't have any idea 
about the state of the lock owner and it's pure chance if the spinning 
task with schedule back in at an opportune time, or if it will just be 
adding to the scheduling overhead and CPU resources the owner is still 
trying to acquire.

The idea here is to leverage the additional information we have in the 
kernel to make more intelligent decisions about how long to spin (as 
well as how many tasks should spin).

-- 
Darren Hart
IBM Linux Technology Center
Real-Time Linux Team

  reply	other threads:[~2010-04-05 14:07 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-31 23:21 RFC: Ideal Adaptive Spinning Conditions Darren Hart
2010-03-31 23:35 ` Roland Dreier
2010-04-01  2:03   ` Darren Hart
2010-04-01 17:02     ` Chris Wright
2010-03-31 23:38 ` Steven Rostedt
2010-04-01  0:17   ` Peter W. Morreale
2010-04-01  2:25     ` Darren Hart
2010-04-03 18:00       ` john cooper
2010-04-05 14:06         ` Darren Hart [this message]
2010-04-03 17:51     ` john cooper
2010-04-01  2:13   ` Darren Hart
2010-04-01  2:25     ` Steven Rostedt
2010-04-01  5:15       ` Darren Hart
2010-04-01 12:46         ` Gregory Haskins
2010-04-04  1:50       ` Rik van Riel
2010-04-04 15:06         ` Peter W. Morreale
2010-04-05 14:10         ` Darren Hart
2010-04-01  2:10 ` Darren Hart
2010-04-01 14:04   ` Chris Mason
2010-04-01 14:20 ` Avi Kivity
2010-04-01 15:54   ` Darren Hart
2010-04-01 16:10     ` Avi Kivity
2010-04-01 17:10       ` Darren Hart
2010-04-01 17:15         ` Avi Kivity

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=4BB9EE72.3010902@us.ibm.com \
    --to=dvhltc@us.ibm.com \
    --cc=chris.mason@oracle.com \
    --cc=eric.dumazet@gmail.com \
    --cc=ghaskins@novell.com \
    --cc=john.cooper@redhat.com \
    --cc=john.cooper@third-harmonic.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=pmorreale@novell.com \
    --cc=rostedt@goodmis.org \
    --cc=sdietrich@novell.com \
    --cc=tglx@linutronix.de \
    /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;
as well as URLs for NNTP newsgroup(s).