Re: Q: check_unsafe_exec() races (Was: [PATCH 2/4] fix setuidsometimes doesn't)

From: Linus Torvalds
Date: Tue Apr 21 2009 - 12:42:58 EST




On Tue, 21 Apr 2009, Oleg Nesterov wrote:
>
> > (You do rcu_read_unlock() earlier, but that's okay.)
>
> Yes, but unless we have a "strong" reason, it is better to take
> fs->lock first. rcu_read_lock() is free, but disables preemption.

.. but so does taking a spinlock. So it shouldn't matter.

We could play games with that (the same way I think we have some games for
large-system irq latency with '__raw_spin_lock_flags()' on ia64), but that
makes sense only when you have lots of CPU's and expect irq latency to
suffer.

And it doesn't tend to make sense for preemption latency, because if you
have so many CPU's that you have lots of spinning on locks, you would
normally not really care deeply about preemption (sure, in theory it's a
real-time thing, in practice I doubt you'll find anybody who cares).

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/