Re: [PATCH 3/3] wait_task_inactive: don't use the dummy version when!SMP && PREEMPT

From: Linus Torvalds
Date: Wed Jul 30 2008 - 13:46:35 EST




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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/