|
From: | Avi Kivity |
Subject: | [Qemu-devel] Re: [patch uq/master 2/2] kvm-all.c: define smp_wmb and use it for coalesced mmio |
Date: | Mon, 22 Feb 2010 17:08:00 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.7) Gecko/20100120 Fedora/3.0.1-1.fc12 Thunderbird/3.0.1 |
On 02/22/2010 04:57 PM, Michael S. Tsirkin wrote:
There is no need (for this case). Older read cannot be reordered with write, writes are not reordered with other writes, writes by a single processor are observed in the same order by all processors.Well, Linux does use sfence.At least on 64 bit it doesnt.
Right, I was looking at wmb(), not smp_wmb().
I imagine all arches need an instruction. For reads as well. Note, gcc has a __sync_synchronize() builtin that compiles to mfence on x86. We might use that as a baseline for both rmb and wmb, and let each arch override it incrementally.This it what my patch did. Note it only works well for recent gcc.
Do you know how recent? -- error compiling committee.c: too many arguments to function
[Prev in Thread] | Current Thread | [Next in Thread] |