[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5114353D.1060202@linaro.org>
Date: Thu, 07 Feb 2013 15:14:05 -0800
From: John Stultz <john.stultz@...aro.org>
To: paulmck@...ux.vnet.ibm.com
CC: Michel Lespinasse <walken@...gle.com>,
Rik van Riel <riel@...hat.com>,
Ingo Molnar <mingo@...hat.com>,
David Howells <dhowells@...hat.com>,
Thomas Gleixner <tglx@...utronix.de>,
Eric Dumazet <edumazet@...gle.com>,
"Eric W. Biederman" <ebiederm@...ssion.com>,
Manfred Spraul <manfred@...orfullife.com>,
linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH 1/6] kernel: implement queue spinlock API
On 02/07/2013 02:34 PM, Paul E. McKenney wrote:
> On Tue, Jan 22, 2013 at 03:13:30PM -0800, Michel Lespinasse wrote:
>> Introduce queue spinlocks, to be used in situations where it is desired
>> to have good throughput even under the occasional high-contention situation.
>>
>> This initial implementation is based on the classic MCS spinlock,
>> because I think this represents the nicest API we can hope for in a
>> fast queue spinlock algorithm. The MCS spinlock has known limitations
>> in that it performs very well under high contention, but is not as
>> good as the ticket spinlock under low contention. I will address these
>> limitations in a later patch, which will propose an alternative,
>> higher performance implementation using (mostly) the same API.
>>
>> Sample use case acquiring mystruct->lock:
>>
>> struct q_spinlock_node node;
>>
>> q_spin_lock(&mystruct->lock, &node);
>> ...
>> q_spin_unlock(&mystruct->lock, &node);
> It is possible to keep the normal API for MCS locks by having the lock
> holder remember the parameter in the lock word itself. While spinning,
> the node is on the stack, is not needed once the lock is acquired.
> The pointer to the next node in the queue -is- needed, but this can be
> stored in the lock word.
>
> I believe that John Stultz worked on something like this some years back,
> so added him to CC.
Oh yea, its been quite awhile.
Here are some of the discussion threads google remembers for me:
http://marc.info/?l=lse-tech&m=101227079817027&w=2
http://marc.info/?l=lse-tech&m=101380783015065&w=2 (missing the patch)
http://marc.info/?l=lse-tech&m=101380783615084&w=2 (patch for above)
thanks
-john
--
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