On Thu, May 31, 2018 at 11:09:07AM +0800, Jason Wang wrote: > > > On 2018年05月30日 19:42, Wei Xu wrote: > >> /* This actually signals the guest, using eventfd. */ > >> void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) > >> { > >>@@ -2802,10 +2930,34 @@ static bool vhost_enable_notify_packed(struct vhost_dev *dev, > >> struct vhost_virtqueue *vq) > >> { > >> struct vring_desc_packed *d = vq->desc_packed + vq->avail_idx; > >>- __virtio16 flags; > >>+ __virtio16 flags = RING_EVENT_FLAGS_ENABLE; > >> int ret; > >>- /* FIXME: disable notification through device area */ > >>+ if (!(vq->used_flags & VRING_USED_F_NO_NOTIFY)) > >>+ return false; > >>+ vq->used_flags &= ~VRING_USED_F_NO_NOTIFY; > >'used_flags' was originally designed for 1.0, why should we pay attetion to it here? > > > >Wei > > It was used to recored whether or not we've disabled notification. Then we > can avoid unnecessary userspace writes or memory barriers. OK, thanks. > > Thanks