On 01/21/2010 07:10 PM, Michael S. Tsirkin wrote:
Documentation/memory-barriers.txt says:
Mandatory barriers should not be used to control SMP effects, since
mandatory barriers unnecessarily impose overhead on UP systems.
This rule applies to virtio, so let's do it correctly.
This is wrong. A UP guest still runs in parallel with the virtio device.
smp_mb() is used for processor-vs-processor ordering, which can't happen
on UP systems, but for process-vs-device, we must use mb().
(this shows up if running a UP guest on an SMP host).
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.