mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Nicolas Pitre <nico@cam.org>
To: Linus Torvalds <torvalds@osdl.org>
Cc: David Howells <dhowells@redhat.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	linux-arch@vger.kernel.org, lkml <linux-kernel@vger.kernel.org>,
	mingo@redhat.com, Andrew Morton <akpm@osdl.org>
Subject: Re: [PATCH 1/12]: MUTEX: Implement mutexes
Date: Sun, 18 Dec 2005 12:29:56 -0500 (EST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0512181221510.26663@localhost.localdomain> (raw)
In-Reply-To: <Pine.LNX.4.64.0512172227280.3698@g5.osdl.org>

On Sat, 17 Dec 2005, Linus Torvalds wrote:

> 
> 
> On Sat, 17 Dec 2005, Nicolas Pitre wrote:
> > 
> > Now if you don't disable interrupts then nothing prevents an interrupt 
> > handler, or another thread if kernel preemption is allowed
> 
> Preemption, yes. Interrupts no.
> 
> >							 to come 
> > along right between (2) and (4) to call up() or down() which will 
> > make the sem count inconsistent as soon as the interrupted down() or 
> > up() is resumed.
> 
> An interrupt can never change the value without changing it back, except 
> for the old-fashioned use of "up()" as a completion (which I don't think 
> we do any more - we used to do it for IO completion a looong time ago).

Maybe, but I would not bet anything on that statement.  I'm sure there 
are people still using semaphores for IO completion, calling up() from 
interrupt handlers.  And the fact is that it still works fine.

> So I think the interrupt disable could be removed for UP, at least for
> non-preemption.

This is IMHO too fragile and too easy to screw up.  And it puts extra 
conditions on the usage of semaphores that don't exist today.

This is why I think spliting counting semaphores and mutexes _is_ a good 
thing.  There is no special "no from interrupt" issue to care about with 
the unlock operation, it has better performances where the count is not 
important (the vast majority of all semaphores) and it produces even 
smaller code (and we're all for smaller kernels, right?).


Nicolas

  parent reply	other threads:[~2005-12-18 17:30 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-16 23:13 [PATCH 0/12]: MUTEX: Introduce mutex implementation David Howells
2005-12-16 23:13 ` [PATCH 2/12]: MUTEX: Provide SWAP-based mutex for FRV David Howells
2005-12-16 23:13 ` [PATCH 3/12]: MUTEX: Rename DECLARE_MUTEX for arch/ dir David Howells
2005-12-16 23:13 ` [PATCH 1/12]: MUTEX: Implement mutexes David Howells
2005-12-17  3:58   ` Steven Rostedt
2005-12-17  7:35     ` Linus Torvalds
2005-12-17  7:55     ` Nick Piggin
2005-12-17 12:36       ` Steven Rostedt
2005-12-17 19:21     ` David Howells
2005-12-17 20:11       ` Linus Torvalds
2005-12-17 21:44         ` Russell King
2005-12-18  1:29         ` Nicolas Pitre
2005-12-18  2:34           ` Linus Torvalds
2005-12-18  4:07             ` Nicolas Pitre
2005-12-18  4:18               ` Steven Rostedt
2005-12-18  6:30               ` Linus Torvalds
2005-12-18  9:26                 ` Russell King
2005-12-18 18:42                   ` Linus Torvalds
2005-12-18 19:41                     ` James Bottomley
2005-12-18 19:54                       ` Linus Torvalds
2005-12-19  1:48                     ` Nicolas Pitre
2005-12-19  9:27                       ` Russell King
2005-12-19 13:54                         ` Matthew Wilcox
2005-12-19 15:49                           ` Nicolas Pitre
2005-12-19 15:45                         ` Nicolas Pitre
2005-12-18 17:29                 ` Nicolas Pitre [this message]
2005-12-18 13:38           ` Alan Cox
2005-12-18 17:21             ` Nicolas Pitre
2005-12-16 23:13 ` [PATCH 9/12]: MUTEX: Rename DECLARE_MUTEX for net/ dir David Howells
2005-12-16 23:13 ` [PATCH 10/12]: MUTEX: Rename DECLARE_MUTEX for sound/ dir David Howells
2005-12-16 23:13 ` [PATCH 5/12]: MUTEX: Rename DECLARE_MUTEX for drivers/ dir, N thru Z David Howells
2005-12-16 23:13 ` [PATCH 11/12]: MUTEX: Rename DECLARE_MUTEX for miscellaneous directories David Howells
2005-12-16 23:13 ` [PATCH 7/12]: MUTEX: Rename DECLARE_MUTEX for include/asm-*/ dirs David Howells
2005-12-16 23:13 ` [PATCH 8/12]: MUTEX: Rename DECLARE_MUTEX for kernel/ dir David Howells
2005-12-16 23:13 ` [PATCH 4/12]: MUTEX: Rename DECLARE_MUTEX for drivers/ dir, A thru M David Howells
2005-12-16 23:13 ` [PATCH 6/12]: MUTEX: Rename DECLARE_MUTEX for fs/ dir David Howells
2005-12-16 23:13 ` [PATCH 12/12]: MUTEX: Provide synchronisation primitive testing module David Howells

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=Pine.LNX.4.64.0512181221510.26663@localhost.localdomain \
    --to=nico@cam.org \
    --cc=akpm@osdl.org \
    --cc=dhowells@redhat.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=torvalds@osdl.org \
    /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

all inboxes | Powered by JetHome®