[ Thanks to Jeremy
Andrews for this link. ]
“A recent bug report on the lkml complained of significant
performance degradation from enabling CONFIG_PREEMPT, kernel
preemption. 2.6 kernel maintainer Andrew Morton pointed out that
such degradation from enabling kernel preemption is not normal,
instead likely from it triggering a bug. However, an interesting
conversation on the merits of kernel preemption followed.“Andrea Arcangeli, author of the 2.4 virtual memory subsystem,
bluntly suggested, ‘keep preempt turned off always, it’s useless.
Preempt just wastes cpu with tons of branches in fast paths that
should take one cycle instead.’ Andrew Morton noted, ‘preempt is
overrated.’ However, he went on to point out that kernel preemption
has been very useful in detecting locking bugs. He added, ‘it has
been demonstrated that preempt improves the average latency. But
not worst-case, because those paths tend to be under
spinlock…'”