Re: [RFC V5 PATCH 8/8] vhost: event suppression for packed ring

From: Wei Xu
Date: Sun Jun 03 2018 - 11:40:18 EST


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