Re: [DOCUMENTATION] Revised Unreliable Kernel Locking Guide

From: Dave Jones
Date: Fri Dec 12 2003 - 13:35:16 EST


On Sat, Dec 13, 2003 at 03:25:52AM +1100, Keith Owens wrote:
> On Fri, 12 Dec 2003 15:44:01 +0000,
> Dave Jones <davej@xxxxxxxxxx> wrote:
> > Might be worth mentioning in the Per-CPU data section that code doing
> >operations on CPU registers (MSRs and the like) needs to be protected
> >by an explicit preempt_disable() / preempt_enable() pair if it's doing
> >operations that it expects to run on a specific CPU.
>
> Also calls to smp_call_function() need to be wrapped in preempt_disable,
> plus any work that is done on the current cpu before/after calling a
> function on the other cpus. Lack of preempt disable could result in
> the operation being done twice on one cpu and not at all on another.

And where you want to do the same thing on every processor, there's a
handy on_each_cpu() which takes care of this for you.

Dave

-
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/