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)? -- Best regards, Nikita Kalyazin, n.kalyazin at 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 <huawei.xie at intel.com> > > Applied with following title, thanks > vhost: fix virtio freeze due to missed interrupt >