From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [PATCH v2] vhost: flush used->idx update before reading avail->flags Date: Fri, 15 May 2015 17:23:35 +0200 Message-ID: <20150515172230-mutt-send-email-mst@redhat.com> References: <1429720392-25345-1-git-send-email-huawei.xie@intel.com> <1430305884-9139-1-git-send-email-huawei.xie@intel.com> <1907109.z7RyHoHxuq@xps13> <20150515134333.GA5857@kalyazin.rnd.samsung.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org To: Nikita Kalyazin Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 7EC562716 for ; Fri, 15 May 2015 17:23:42 +0200 (CEST) Content-Disposition: inline In-Reply-To: <20150515134333.GA5857@kalyazin.rnd.samsung.ru> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Fri, May 15, 2015 at 04:43:33PM +0300, Nikita Kalyazin wrote: > Hi, > > > Maybe I missed a part of the discussion, but is there any special purpose for using rte_mb (both read and write fence) here rather than rte_wmb (write fence only)? The fence is between write of used->idx and read of avail->flags, so rte_wmb won't do anything useful. > -- > > Best regards, > > Nikita Kalyazin, > n.kalyazin@samsung.com > > Software Engineer > CE OS Group > Samsung R&D Institute Russia > Tel: +7 (495) 797-25-00 #3816 > Tel: +7 (495) 797-25-03 > Office #1501, 12-1, Dvintsev str., > Moscow, 127018, Russia > > On Wed, May 13, 2015 at 12:46:30PM +0200, Thomas Monjalon wrote: > > 2015-04-29 19:11, Huawei Xie: > > > update of used->idx and read of avail->flags could be reordered. > > > memory fence should be used to ensure the order, otherwise guest could see a stale used->idx value after it toggles the interrupt suppression flag. > > > After guest sets the interrupt suppression flag, it will check if there is more buffer to process through used->idx. If it sees a stale value, it will exit the processing while host willn't send interrupt to guest. > > > > > > Signed-off-by: Huawei Xie > > > > Applied with following title, thanks > > vhost: fix virtio freeze due to missed interrupt > >