Re: Q: smp.c && barriers (Was: [PATCH 1/4] generic-smp: remove single ipi fallback for smp_call_function_many())

Linus Torvalds
2009-02-18T17:16:00Z

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"?

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.

We do want this to be low-overhead, even if we probably don't care _that_
much.

Linus