qemu-devel
[Top][All Lists]
Advanced

[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: Jason Wang
Subject: Re: [Qemu-devel] [[RFC v3 12/12] virtio: feature vhost-net support for packed ring
Date: Mon, 15 Oct 2018 15:50:21 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1



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.

---
  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.

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)
  {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]