Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Ingo Molnar <mingo@xxxxxxx>
- Date: Tue, 13 Dec 2005 11:34:20 +0100
* Ingo Molnar <mingo@xxxxxxx> wrote:
> > Nick Piggin <nickpiggin@xxxxxxxxxxxx> wrote:
> >
> > > We have atomic_cmpxchg. Can you use that for a sufficient generic
> > > implementation?
> >
> > No. CMPXCHG/CAS is not as available as XCHG, and it's also unnecessary.
>
> take a look at the PREEMPT_RT implementation of mutexes: it uses
> cmpxchg(), and thus both the down() and the up() fastpath is lockless!
> (And that is a mutex type that does alot more things, as it supports
> priority inheritance.)
>
> architectures which dont have cmpxchg can use a spinlock just fine.
the cost of a spinlock-based generic_cmpxchg could be significantly
reduced by adding a generic_cmpxchg() variant that also includes a
'spinlock pointer' parameter.
Architectures that do not have the instruction, can use the specified
spinlock to do the cmpxchg. This means that there wont be one single
global spinlock to emulate cmpxchg, but the mutex's own spinlock can be
used for it.
Architectures that have the cmpxchg instruction would simply ignore the
parameter, and would incur no overhead.
Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Oliver Neukum
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Ingo Molnar
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- References:
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Nick Piggin
- [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: David Howells
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: David Howells
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Ingo Molnar
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- Prev by Date: 2.6.15-rc5-mm2 does not boot on AMD64 with sata_sil
- Next by Date: Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- Previous by thread: Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- Next by thread: Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- Index(es):
Relevant Pages
|