Re: [PATCH 2/2] virtio-net: delete also control queue when TX/RX deleted
On Thu, Jan 2, 2020 at 1:43 AM Michael S. Tsirkin wrote: > On Thu, Dec 26, 2019 at 06:36:49AM +0200, Yuri Benditovich wrote: > > https://bugzilla.redhat.com/show_bug.cgi?id=1708480 > > If the control queue is not deleted together with TX/RX, it > > later will be ignored in freeing cache resources and hot > > unplug will not be completed. > > > > Signed-off-by: Yuri Benditovich > > --- > > hw/net/virtio-net.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c > > index db3d7c38e6..f325440d01 100644 > > --- a/hw/net/virtio-net.c > > +++ b/hw/net/virtio-net.c > > @@ -3101,7 +3101,8 @@ static void > virtio_net_device_unrealize(DeviceState *dev, Error **errp) > > for (i = 0; i < max_queues; i++) { > > virtio_net_del_queue(n, i); > > } > > - > > +/* delete also control vq */ > > +virtio_del_queue(vdev, max_queues * 2); > > qemu_announce_timer_del(&n->announce_timer, false); > > g_free(n->vqs); > > qemu_del_nic(n->nic); > > Do we need to limit this to when ctrl vq exists? > ctrl vq always exists (we _add_ it unconditionally). we may suggest respective feature or not, but the initialized queue structure present. > > > -- > > 2.17.1 > >
Re: [PATCH 2/2] virtio-net: delete also control queue when TX/RX deleted
On Thu, Dec 26, 2019 at 06:36:49AM +0200, Yuri Benditovich wrote: > https://bugzilla.redhat.com/show_bug.cgi?id=1708480 > If the control queue is not deleted together with TX/RX, it > later will be ignored in freeing cache resources and hot > unplug will not be completed. > > Signed-off-by: Yuri Benditovich > --- > hw/net/virtio-net.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c > index db3d7c38e6..f325440d01 100644 > --- a/hw/net/virtio-net.c > +++ b/hw/net/virtio-net.c > @@ -3101,7 +3101,8 @@ static void virtio_net_device_unrealize(DeviceState > *dev, Error **errp) > for (i = 0; i < max_queues; i++) { > virtio_net_del_queue(n, i); > } > - > +/* delete also control vq */ > +virtio_del_queue(vdev, max_queues * 2); > qemu_announce_timer_del(&n->announce_timer, false); > g_free(n->vqs); > qemu_del_nic(n->nic); Do we need to limit this to when ctrl vq exists? > -- > 2.17.1
[PATCH 2/2] virtio-net: delete also control queue when TX/RX deleted
https://bugzilla.redhat.com/show_bug.cgi?id=1708480 If the control queue is not deleted together with TX/RX, it later will be ignored in freeing cache resources and hot unplug will not be completed. Signed-off-by: Yuri Benditovich --- hw/net/virtio-net.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index db3d7c38e6..f325440d01 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -3101,7 +3101,8 @@ static void virtio_net_device_unrealize(DeviceState *dev, Error **errp) for (i = 0; i < max_queues; i++) { virtio_net_del_queue(n, i); } - +/* delete also control vq */ +virtio_del_queue(vdev, max_queues * 2); qemu_announce_timer_del(&n->announce_timer, false); g_free(n->vqs); qemu_del_nic(n->nic); -- 2.17.1