[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [[RFC v3 12/12] virtio: feature vhost-net support for p
From: |
Wei Xu |
Subject: |
Re: [Qemu-devel] [[RFC v3 12/12] virtio: feature vhost-net support for packed ring |
Date: |
Mon, 15 Oct 2018 16:11:43 +0800 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Mon, Oct 15, 2018 at 03:50:21PM +0800, Jason Wang wrote:
>
>
> On 2018年10月11日 22:08, address@hidden wrote:
> >From: Wei Xu <address@hidden>
> >
> >(cherry picked from commit 305a2c4640c15c5717245067ab937fd10f478ee6)
> >Signed-off-by: Wei Xu <address@hidden>
> >(cherry picked from commit 46476dae6f44c6fef8802a4a0ac7d0d79fe399e3)
> >Signed-off-by: Wei Xu <address@hidden>
>
> The cherry-pick tag looks odd.
My bad.
>
> >---
> > hw/virtio/vhost.c | 3 +++
> > hw/virtio/virtio.c | 4 ++++
> > include/hw/virtio/virtio.h | 1 +
> > 3 files changed, 8 insertions(+)
> >
> >diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
> >index 9df2da3..de06d55 100644
> >--- a/hw/virtio/vhost.c
> >+++ b/hw/virtio/vhost.c
> >@@ -974,6 +974,9 @@ static int vhost_virtqueue_start(struct vhost_dev *dev,
> > }
> > state.num = virtio_queue_get_last_avail_idx(vdev, idx);
> >+ if (virtio_vdev_has_feature(vdev, VIRTIO_F_RING_PACKED)) {
> >+ state.num |= ((int)virtio_queue_packed_get_wc(vdev, idx)) << 31;
> >+ }
>
> We decide to use bit 15 instead.
>
> And please refer the recent discussion for the agreement.
OK.
>
> Thanks
>
> > r = dev->vhost_ops->vhost_set_vring_base(dev, &state);
> > if (r) {
> > VHOST_OPS_DEBUG("vhost_set_vring_base failed");
> >diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> >index 1d25776..2a90163 100644
> >--- a/hw/virtio/virtio.c
> >+++ b/hw/virtio/virtio.c
> >@@ -2894,6 +2894,10 @@ void virtio_init(VirtIODevice *vdev, const char *name,
> > vdev->use_guest_notifier_mask = true;
> > }
> >+bool virtio_queue_packed_get_wc(VirtIODevice *vdev, int n)
> >+{
> >+ return vdev->vq[n].avail_wrap_counter;
> >+}
> > hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n)
> > {
> > return vdev->vq[n].vring.desc;
> >diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
> >index 9af8839..0bb3be5 100644
> >--- a/include/hw/virtio/virtio.h
> >+++ b/include/hw/virtio/virtio.h
> >@@ -295,6 +295,7 @@ void
> >virtio_queue_aio_set_host_notifier_handler(VirtQueue *vq, AioContext *ctx,
> > VirtIOHandleAIOOutput
> > handle_output);
> > VirtQueue *virtio_vector_first_queue(VirtIODevice *vdev, uint16_t vector);
> > VirtQueue *virtio_vector_next_queue(VirtQueue *vq);
> >+bool virtio_queue_packed_get_wc(VirtIODevice *vdev, int n);
> > static inline void virtio_add_feature(uint64_t *features, unsigned int
> > fbit)
> > {
>
>