Messages in this thread | | | Date | Wed, 30 Jul 2008 10:42:28 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: [PATCH 3/3] wait_task_inactive: don't use the dummy version when !SMP && PREEMPT |
| |
On Wed, 30 Jul 2008, Oleg Nesterov wrote: > > The patch looks monstrous because it moves the (unchanged) definition > of wait_task_inactive() outside of "#ifdef CONFIG_SMP", but it is quite > trivial.
Hmm. Doesn't this just deadlock in UP (PREEMPT) if wait_task_interactive() is ever called from a no-preempt context?
And if that's never the case, the comment should be updated to reflect that (right now it says that it's only invalid to call it with interrupts disabled to avoid cross-IPI deadlocks).
Oh, and shouldn't it do a "yield()" instead of a cpu_relax() on UP?
Inquiring minds want to know. That function was very much expressly designed for SMP, not for preemption, and I want to understand why it's ok (_if_ it's ok).
Linus
| |