[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1270078689.19685.8040.camel@gandalf.stny.rr.com>
Date: Wed, 31 Mar 2010 19:38:09 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Darren Hart <dvhltc@...ibm.com>
Cc: "lkml," <linux-kernel@...r.kernel.org>,
Peter Zijlstra <peterz@...radead.org>,
Gregory Haskins <ghaskins@...ell.com>,
Sven-Thorsten Dietrich <sdietrich@...ell.com>,
Peter Morreale <pmorreale@...ell.com>,
Chris Wright <chrisw@...s-sol.org>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...e.hu>,
Eric Dumazet <eric.dumazet@...il.com>
Subject: Re: RFC: Ideal Adaptive Spinning Conditions
On Wed, 2010-03-31 at 16:21 -0700, Darren Hart wrote:
> o What type of lock hold times do we expect to benefit?
0 (that's a zero) :-p
I haven't seen your patches but you are not doing a heuristic approach,
are you? That is, do not "spin" hoping the lock will suddenly become
free. I was against that for -rt and I would be against that for futex
too.
> o How much contention is a good match for adaptive spinning?
> - this is related to the number of threads to run in the test
> o How many spinners should be allowed?
>
> I can share the kernel patches if people are interested, but they are
> really early, and I'm not sure they are of much value until I better
> understand the conditions where this is expected to be useful.
Again, I don't know how you implemented your adaptive spinners, but the
trick to it in -rt was that it would only spin while the owner of the
lock was actually running. If it was not running, it would sleep. No
point waiting for a sleeping task to release its lock.
Is this what you did? Because, IIRC, this only benefited spinlocks
converted to mutexes. It did not help with semaphores, because
semaphores could be held for a long time. Thus, it was good for short
held locks, but hurt performance on long held locks.
If userspace is going to do this, I guess the blocked task would need to
go into kernel, and spin there (with preempt enabled) if the task is
still active and holding the lock.
Then the application would need to determine which to use. An adaptive
spinner for short held locks, and a normal futex for long held locks.
-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists