Messages in this thread | | | Subject | Re: Q: smp.c && barriers (Was: [PATCH 1/4] generic-smp: remove single ipi fallback for smp_call_function_many()) | From | Suresh Siddha <> | Date | Wed, 18 Feb 2009 10:33:46 -0800 |
| |
On Wed, 2009-02-18 at 09:14 -0800, Linus Torvalds wrote: > > On Wed, 18 Feb 2009, Ingo Molnar wrote: > > > > an off-list comment pointed out this piece of information as > > well: > > > > http://www.sandpile.org/ia32/coherent.htm > > > > A WRMSR to one of the x2APIC MSRs (0000_0800h...0000_0BFFh) is > > not guaranteed to be serializing. > > > > So i suspect we should just enclose it in smp_mb() pairs to make > > sure it's a full barrier in both directions? > > Why would we care about "both directions"?
on x86 we don't need in both directions.
> > I think putting an sfence _before_ the wrmsr (and not even all of them - > just put it in front of the "send IPI" sequence) should be fine. Any other > ordering sounds like just unnecessary overhead to me.
For x2apic ipi's, we should use a serializing instruction or a "mfence" instruction. "sfence" will not help in this scenario.
thanks, suresh
| |