Re: Semantics of smp_mb() [was : Re: [PATCH] Fix RCU race in access of nohz_cpu_mask ]

From: Keith Owens
Date: Tue Dec 13 2005 - 17:27:17 EST


On Tue, 13 Dec 2005 08:20:27 -0800,
"Paul E. McKenney" <paulmck@xxxxxxxxxx> wrote:
>If the variable p references MMIO rather than normal memory, then
>wmb() and rmb() are needed instead of smp_wmb() and smp_rmb().

mmiowb(), not wmb(). IA64 has a different form of memory fence for I/O
space compared to normal memory. MIPS also has a non-empty form of
mmiowb().

>This is because the I/O device needs to see the accesses ordered
>even in a UP system.

Why does mmiowb() map to empty on most systems, including Alpha?
Should it not map to wmb() for everything except IA64 and MIPS?

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