Message ID | 776e17f969c81d5d0ca3648a39ea8806261eda50.1662916759.git.kangjie.xu@linux.alibaba.com |
---|---|
State | New |
Headers | show |
Series | Support VIRTIO_F_RING_RESET for virtio-net, vhost-net kernel in virtio pci-modern | expand |
On Mon, Sep 12, 2022 at 1:22 AM Kangjie Xu <kangjie.xu@linux.alibaba.com> wrote: > > A a new command line parameter "queue_reset" is added. > > Meanwhile, the vq reset feature is disabled for pre-7.2 machines. > > Signed-off-by: Kangjie Xu <kangjie.xu@linux.alibaba.com> > Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> Acked-by: Jason Wang <jasowang@redhat.com> > --- > hw/core/machine.c | 4 +++- > include/hw/virtio/virtio.h | 4 +++- > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/hw/core/machine.c b/hw/core/machine.c > index aa520e74a8..907fa78ff0 100644 > --- a/hw/core/machine.c > +++ b/hw/core/machine.c > @@ -40,7 +40,9 @@ > #include "hw/virtio/virtio-pci.h" > #include "qom/object_interfaces.h" > > -GlobalProperty hw_compat_7_1[] = {}; > +GlobalProperty hw_compat_7_1[] = { > + { "virtio-device", "queue_reset", "false" }, > +}; > const size_t hw_compat_7_1_len = G_N_ELEMENTS(hw_compat_7_1); > > GlobalProperty hw_compat_7_0[] = { > diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h > index 085997d8f3..ed3ecbef80 100644 > --- a/include/hw/virtio/virtio.h > +++ b/include/hw/virtio/virtio.h > @@ -295,7 +295,9 @@ typedef struct VirtIORNGConf VirtIORNGConf; > DEFINE_PROP_BIT64("iommu_platform", _state, _field, \ > VIRTIO_F_IOMMU_PLATFORM, false), \ > DEFINE_PROP_BIT64("packed", _state, _field, \ > - VIRTIO_F_RING_PACKED, false) > + VIRTIO_F_RING_PACKED, false), \ > + DEFINE_PROP_BIT64("queue_reset", _state, _field, \ > + VIRTIO_F_RING_RESET, true) > > hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n); > bool virtio_queue_enabled_legacy(VirtIODevice *vdev, int n); > -- > 2.32.0 >
diff --git a/hw/core/machine.c b/hw/core/machine.c index aa520e74a8..907fa78ff0 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -40,7 +40,9 @@ #include "hw/virtio/virtio-pci.h" #include "qom/object_interfaces.h" -GlobalProperty hw_compat_7_1[] = {}; +GlobalProperty hw_compat_7_1[] = { + { "virtio-device", "queue_reset", "false" }, +}; const size_t hw_compat_7_1_len = G_N_ELEMENTS(hw_compat_7_1); GlobalProperty hw_compat_7_0[] = { diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index 085997d8f3..ed3ecbef80 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -295,7 +295,9 @@ typedef struct VirtIORNGConf VirtIORNGConf; DEFINE_PROP_BIT64("iommu_platform", _state, _field, \ VIRTIO_F_IOMMU_PLATFORM, false), \ DEFINE_PROP_BIT64("packed", _state, _field, \ - VIRTIO_F_RING_PACKED, false) + VIRTIO_F_RING_PACKED, false), \ + DEFINE_PROP_BIT64("queue_reset", _state, _field, \ + VIRTIO_F_RING_RESET, true) hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n); bool virtio_queue_enabled_legacy(VirtIODevice *vdev, int n);