Messages in this thread | | | Subject | Re: [PATCH] Replace completions with semaphores | From | Daniel Walker <> | Date | Fri, 11 Apr 2008 23:43:11 -0700 |
| |
On Fri, 2008-04-11 at 15:00 -0600, Matthew Wilcox wrote:
> So does it make sense to retain the completion as a primitive > in Linux? On the one hand, it clearly denotes how one uses it -- > that it's initially 'locked' and becomes 'unlocked' later. On the > other hand, it is Yet Another Thing to be maintained; I had to > add wait_for_completion_killable(), probably there needs to be a > wait_for_completion_killable_timeout() too.
>From my perspective it should be keep completions , and remove semaphores.. The problem with semaphores is the lack of a strict API, and loose usage. I've seen a lot of "creative" locking in the kernel, and if we allow that we're just asking for continued maintainability problems in the code that uses semaphores. At times I've spent hours trying to figure out what a semaphore is doing, or suppose to be doing. If we enforce strict usage of semaphores, then we'll basically reproduce mutex usage, and we have a generic mutex already..
Daniel
| |