From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:41708) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qz9ub-0001km-Gr for qemu-devel@nongnu.org; Thu, 01 Sep 2011 12:14:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qz9ua-0006Es-5A for qemu-devel@nongnu.org; Thu, 01 Sep 2011 12:14:41 -0400 Received: from mail-wy0-f173.google.com ([74.125.82.173]:46190) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qz9ua-0006Eo-0K for qemu-devel@nongnu.org; Thu, 01 Sep 2011 12:14:40 -0400 Received: by wyf22 with SMTP id 22so1661606wyf.4 for ; Thu, 01 Sep 2011 09:14:39 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <4E5FAF6A.70205@redhat.com> Date: Thu, 01 Sep 2011 18:14:34 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1314857389-13363-1-git-send-email-david@gibson.dropbear.id.au> <20110901153020.GB10989@redhat.com> In-Reply-To: <20110901153020.GB10989@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] virtio: Make memory barriers be memory barriers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: aliguori@us.ibm.com, aik@ozlabs.ru, rusty@rustcorp.com.au, agraf@suse.de, qemu-devel@nongnu.org, David Gibson On 09/01/2011 05:30 PM, Michael S. Tsirkin wrote: >> > The virtio code already has memory barrier wmb() macros in the code. >> > However they are was defined as no-ops. The comment claims that real >> > barriers are not necessary because the code does not run concurrent. >> > However, with kvm and io-thread enabled, this is not true and this qemu >> > code can indeed run concurrently with the guest kernel. This does not >> > cause problems on x86 due to it's strongly ordered storage model, but it >> > causes a race leading to virtio errors on POWER which has a relaxed storage >> > ordering model. > > Why not limit the change to ppc then? Because the bug is masked by the x86 memory model, but it is still there even there conceptually. It is not really true that x86 does not need memory barriers, though it doesn't in this case: http://bartoszmilewski.wordpress.com/2008/11/05/who-ordered-memory-fences-on-an-x86/ Paolo