From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [PATCH v2 32/32] virtio_ring: use virt_store_mb Date: Sun, 3 Jan 2016 11:01:05 +0200 Message-ID: <20160103110052-mutt-send-email-mst@redhat.com> References: <1451572003-2440-1-git-send-email-mst@redhat.com> <1451572003-2440-33-git-send-email-mst@redhat.com> <5686B622.6070600@cogentembedded.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <5686B622.6070600-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org> Sender: linux-metag-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Sergei Shtylyov Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Peter Zijlstra , Arnd Bergmann , linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Andrew Cooper , virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, Stefano Stabellini , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , David Miller , linux-ia64-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, linux-s390-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, sparclinux-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-metag-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org, x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, user-mode-linux-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, adi-buildroot-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, linux-sh-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-xtensa-PjhNF2WwrV/0Sa2dR60CXw@public.gmane.org, xen-devel-GuqFBffKawtpuQazS67q72D2FQJk+8+b@public.gmane.org List-Id: linux-arch.vger.kernel.org On Fri, Jan 01, 2016 at 08:23:46PM +0300, Sergei Shtylyov wrote: > Hello. > > On 12/31/2015 10:09 PM, Michael S. Tsirkin wrote: > > >We need a full barrier after writing out event index, using > >virt_store_mb there seems better than open-coding. As usual, we need a > >wrapper to account for strong barriers. > > > >It's tempting to use this in vhost as well, for that, we'll > >need a variant of smp_store_mb that works on __user pointers. > > > >Signed-off-by: Michael S. Tsirkin > >--- > > include/linux/virtio_ring.h | 12 ++++++++++++ > > drivers/virtio/virtio_ring.c | 15 +++++++++------ > > 2 files changed, 21 insertions(+), 6 deletions(-) > > > >diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h > >index f3fa55b..3a74d91 100644 > >--- a/include/linux/virtio_ring.h > >+++ b/include/linux/virtio_ring.h > >@@ -45,6 +45,18 @@ static inline void virtio_wmb(bool weak_barriers) > > wmb(); > > } > > > >+static inline void virtio_store_mb(bool weak_barriers, > >+ __virtio16 *p, __virtio16 v) > >+{ > >+ if (weak_barriers) > >+ virt_store_mb(*p, v); > >+ else > >+ { > > The kernel coding style dictates: > > if (weak_barriers) { > virt_store_mb(*p, v); > } else { > > >+ WRITE_ONCE(*p, v); > >+ mb(); > >+ } > >+} > >+ > [...] > > MBR, Sergei Will fix, thanks! From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com ([209.132.183.28]:53657 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751282AbcACJBQ (ORCPT ); Sun, 3 Jan 2016 04:01:16 -0500 Date: Sun, 3 Jan 2016 11:01:05 +0200 From: "Michael S. Tsirkin" Subject: Re: [PATCH v2 32/32] virtio_ring: use virt_store_mb Message-ID: <20160103110052-mutt-send-email-mst@redhat.com> References: <1451572003-2440-1-git-send-email-mst@redhat.com> <1451572003-2440-33-git-send-email-mst@redhat.com> <5686B622.6070600@cogentembedded.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5686B622.6070600@cogentembedded.com> Sender: linux-arch-owner@vger.kernel.org List-ID: To: Sergei Shtylyov Cc: linux-kernel@vger.kernel.org, Peter Zijlstra , Arnd Bergmann , linux-arch@vger.kernel.org, Andrew Cooper , virtualization@lists.linux-foundation.org, Stefano Stabellini , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , David Miller , linux-ia64@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-metag@vger.kernel.org, linux-mips@linux-mips.org, x86@kernel.org, user-mode-linux-devel@lists.sourceforge.net, adi-buildroot-devel@lists.sourceforge.net, linux-sh@vger.kernel.org, linux-xtensa@linux-xtensa.org, xen-devel@lists.xenproject.org Message-ID: <20160103090105.9Maq2NJuePnPLLB1BjAN98-DL_oQ15WAGb06mYmnl54@z> On Fri, Jan 01, 2016 at 08:23:46PM +0300, Sergei Shtylyov wrote: > Hello. > > On 12/31/2015 10:09 PM, Michael S. Tsirkin wrote: > > >We need a full barrier after writing out event index, using > >virt_store_mb there seems better than open-coding. As usual, we need a > >wrapper to account for strong barriers. > > > >It's tempting to use this in vhost as well, for that, we'll > >need a variant of smp_store_mb that works on __user pointers. > > > >Signed-off-by: Michael S. Tsirkin > >--- > > include/linux/virtio_ring.h | 12 ++++++++++++ > > drivers/virtio/virtio_ring.c | 15 +++++++++------ > > 2 files changed, 21 insertions(+), 6 deletions(-) > > > >diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h > >index f3fa55b..3a74d91 100644 > >--- a/include/linux/virtio_ring.h > >+++ b/include/linux/virtio_ring.h > >@@ -45,6 +45,18 @@ static inline void virtio_wmb(bool weak_barriers) > > wmb(); > > } > > > >+static inline void virtio_store_mb(bool weak_barriers, > >+ __virtio16 *p, __virtio16 v) > >+{ > >+ if (weak_barriers) > >+ virt_store_mb(*p, v); > >+ else > >+ { > > The kernel coding style dictates: > > if (weak_barriers) { > virt_store_mb(*p, v); > } else { > > >+ WRITE_ONCE(*p, v); > >+ mb(); > >+ } > >+} > >+ > [...] > > MBR, Sergei Will fix, thanks!