From: Ingo Molnar <mingo@elte.hu>
To: Matthew Wilcox <matthew@wil.cx>
Cc: Roland Dreier <rdreier@cisco.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Oeser <ioe-lkml@rameria.de>,
Daniel Walker <dwalker@mvista.com>,
linux-kernel@vger.kernel.org, Linus Torvalds <torvalds@osdl.org>
Subject: Re: [PATCH] Replace completions with semaphores
Date: Mon, 14 Apr 2008 17:39:28 +0200 [thread overview]
Message-ID: <20080414153928.GA22259@elte.hu> (raw)
In-Reply-To: <20080413125758.GQ11962@parisc-linux.org>
* Matthew Wilcox <matthew@wil.cx> wrote:
> On Sun, Apr 13, 2008 at 09:08:33AM +0200, Ingo Molnar wrote:
> > but semaphores will be _removed_, _completely_. Rewriting them in
> > generic C code is just the first step towards that - it consolidates all
> > the myriads of semaphore implementations that Linux has spread out.
>
> I think you're dreaming. [...]
no, i'm hoping for a simpler and thus more maintainable kernel.
> [...] We have 11 places in the tree that currently demand to use a
> counting semaphore (with 'n' plausibly greater than 1). [...]
which ones exactly are these places that demand the use of a counting
semaphore? I cannot think of a single place where it's the best choice,
let alone one where it's the only choice.
And if there's just 5 isolated places in the kernel that would need a
different locking primitive then i say that it's probably not worth it.
Locking is at the center of every data structure and the clarity and
simplicity of basic data structure operations is paramount IMHO.
Semaphores are i think a relic from the days when people thought that
parallelism can be best achieved via complexity and rafinery of locking
primitives - regardless of how usable and debuggable those APIs end up
to be. Today we can go extremely parallel with very simple and robust
primitives.
> [...] If we remove the facility, these places are going to invent
> their own weird locking schemes.
i'm not worried about weird locking anymore - lockdep tends to expose
them rather nicely and the lack of lockdep coverage for open-coded
locking schemes tends to be a barrier as well. The past 2 years have
shown that people want lockdep coverage for just about everything where
it can be applied: workqueues, special locks, etc. (there's even
questions about whether it could be extended to cover user-space locks.)
Ingo
next prev parent reply other threads:[~2008-04-14 15:40 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-11 21:00 [PATCH] Replace completions with semaphores Matthew Wilcox
2008-04-12 6:43 ` Daniel Walker
2008-04-12 10:31 ` Ingo Oeser
2008-04-12 12:24 ` Peter Zijlstra
2008-04-12 17:26 ` Matthew Wilcox
2008-04-12 18:01 ` Daniel Walker
2008-04-12 18:05 ` Peter Zijlstra
2008-04-12 19:04 ` Matthew Wilcox
2008-04-12 19:16 ` Peter Zijlstra
2008-04-12 19:53 ` Roland Dreier
2008-04-12 20:47 ` Matthew Wilcox
2008-04-13 7:08 ` Ingo Molnar
2008-04-13 12:57 ` Matthew Wilcox
2008-04-14 15:39 ` Ingo Molnar [this message]
2008-04-14 15:58 ` Roland Dreier
2008-04-14 16:32 ` Peter Zijlstra
2008-04-14 16:56 ` Arjan van de Ven
2008-04-14 17:50 ` Matthew Wilcox
2008-04-14 17:46 ` Andi Kleen
2008-04-14 17:54 ` Peter Zijlstra
2008-04-14 18:09 ` Daniel Walker
2008-04-14 19:16 ` Andi Kleen
2008-04-15 6:18 ` Bart Van Assche
2008-04-15 6:46 ` Peter Zijlstra
2008-04-15 7:17 ` Bart Van Assche
2008-04-15 8:44 ` Peter Zijlstra
2008-04-15 13:15 ` Bart Van Assche
2008-04-15 16:09 ` Linus Torvalds
2008-04-15 16:27 ` Andi Kleen
2008-04-15 16:57 ` Linus Torvalds
2008-04-15 17:05 ` Ingo Molnar
2008-04-15 18:50 ` Matthew Wilcox
2008-04-16 12:37 ` Ingo Molnar
2008-04-16 12:50 ` Andi Kleen
2008-04-16 12:59 ` Killable stat/readdir Matthew Wilcox
2008-04-15 17:15 ` [PATCH] Replace completions with semaphores Andi Kleen
2008-04-15 17:26 ` Linus Torvalds
2008-04-15 17:41 ` Matthew Wilcox
2008-04-15 18:14 ` Linus Torvalds
2008-04-16 16:07 ` Ingo Oeser
2008-04-16 16:16 ` Matthew Wilcox
2008-04-16 16:31 ` Oliver Neukum
2008-04-16 16:34 ` Matthew Wilcox
2008-04-16 16:42 ` Oliver Neukum
2008-04-16 16:44 ` Matthew Wilcox
2008-04-16 16:47 ` Roland Dreier
2008-04-16 16:50 ` Arjan van de Ven
2008-04-16 16:58 ` Matthew Wilcox
2008-04-16 17:08 ` Arjan van de Ven
2008-04-16 17:12 ` Matthew Wilcox
2008-04-16 18:10 ` Matthew Wilcox
2008-04-14 19:16 ` Alan Cox
2008-04-13 14:55 ` Bart Van Assche
2008-04-14 17:12 ` API documentation (was [PATCH] Replace completions with semaphores) Jonathan Corbet
2008-04-14 17:33 ` Peter Zijlstra
2008-04-14 18:38 ` Bart Van Assche
2008-04-13 13:55 ` [PATCH] Replace completions with semaphores Bart Van Assche
2008-04-13 14:22 ` Matthew Wilcox
2008-04-13 7:05 ` Ingo Molnar
2008-04-13 12:52 ` Matthew Wilcox
2008-04-14 15:41 ` Ingo Molnar
2008-04-14 17:46 ` Matthew Wilcox
2008-04-14 16:54 ` Jens Axboe
[not found] <ahyFC-2bu-25@gated-at.bofh.it>
[not found] ` <ahUPJ-8rN-1@gated-at.bofh.it>
[not found] ` <ai4vO-2Rp-19@gated-at.bofh.it>
[not found] ` <ai9Yw-5uh-7@gated-at.bofh.it>
[not found] ` <aiz6z-OZ-31@gated-at.bofh.it>
[not found] ` <aizgp-151-25@gated-at.bofh.it>
[not found] ` <aizSW-2Ar-17@gated-at.bofh.it>
[not found] ` <aiAYF-5e7-19@gated-at.bofh.it>
[not found] ` <aiB8o-5A7-17@gated-at.bofh.it>
[not found] ` <aiCnR-7k-39@gated-at.bofh.it>
[not found] ` <aiMGu-7f0-7@gated-at.bofh.it>
2008-04-16 10:22 ` Bodo Eggert
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=20080414153928.GA22259@elte.hu \
--to=mingo@elte.hu \
--cc=dwalker@mvista.com \
--cc=ioe-lkml@rameria.de \
--cc=linux-kernel@vger.kernel.org \
--cc=matthew@wil.cx \
--cc=peterz@infradead.org \
--cc=rdreier@cisco.com \
--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