On Fri, 2005-12-16 at 14:19 -0800, Linus Torvalds wrote: > > On Fri, 16 Dec 2005, Thomas Gleixner wrote: > > > > Well, in case of a semaphore it is a semantically correct use case. In > > case of of a mutex it is not. > > I disagree. > > Think of "initialization" as a user. The system starts out initializing > stuff, and as such the mutex should start out being held. It's that > simple. It _is_ mutual exclusion, with one user being the early bootup > state. Mutual exclusion is available with various semantical characteristics. If you want to have a particular semantical functionality you have to chose a variant which fits that need. Arguing that the underlying mechanism (implemenation) can handle your request is broken by definition. It can, but it still is semantically wrong. Mutexes have a well defined semantic of lock ownership, i.e. the thread which locked a mutex has to unlock it. Semaphores do not have this semantical requirement. Therefor, if you want to handle that "init protection" scenario, do not use a mutex, because the owner can not be defined at compile - allocation time. You can still implement (chose a mechanism) a mutex on top - or in case of lack of priority inheritance or debugging with exactly the same - mechanism as a semaphore, but this does not change the semantical difference at all. tglx - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] 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: Linus Torvalds <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- References:
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Paul Jackson <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Paul Jackson <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Ingo Molnar <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Ingo Molnar <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: David Howells <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: David Howells <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: David Howells <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Thomas Gleixner <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Mark Lord <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Andrew Morton <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Nikita Danilov <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Alan Cox <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: David Howells <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: David Howells <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Linus Torvalds <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Andrew Morton <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Steven Rostedt <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Geert Uytterhoeven <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Thomas Gleixner <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Linus Torvalds <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Thomas Gleixner <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- From: Linus Torvalds <[email protected]>
- Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation
- Prev by Date: [PATCH 2.6] Altix - ioc3 serial support
- Next by Date: [PATCH] ppc: ppc4xx_dma DMA_MODE_{READ,WRITE} fix
- 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):