Messages in this thread | | | Date | Fri, 12 Dec 2003 18:25:56 +0000 | From | Dave Jones <> | Subject | Re: [DOCUMENTATION] Revised Unreliable Kernel Locking Guide |
| |
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@redhat.com> 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |