From: Jason Wang <jasowang@redhat.com>
To: Kangjie Xu <kangjie.xu@linux.alibaba.com>, qemu-devel@nongnu.org
Cc: mst@redhat.com, eduardo@habkost.net, marcel.apfelbaum@gmail.com,
f4bug@amsat.org, wangyanan55@huawei.com,
hengqi@linux.alibaba.com, xuanzhuo@linux.alibaba.com
Subject: Re: [PATCH v2 04/24] virtio: introduce virtio_queue_enable()
Date: Tue, 23 Aug 2022 15:37:32 +0800 [thread overview]
Message-ID: <268c8e26-2f82-2bd1-c751-6f8f6930d73f@redhat.com> (raw)
In-Reply-To: <d308096f0734db11159ff114e55ccb5868270c8c.1660611460.git.kangjie.xu@linux.alibaba.com>
在 2022/8/16 09:06, Kangjie Xu 写道:
> Introduce the interface queue_enable() in VirtioDeviceClass and the
> fucntion virtio_queue_enable() in virtio, it can be called when
> VIRTIO_PCI_COMMON_Q_ENABLE is written and related virtqueue can be
> started. It only supports the devices of virtio 1 or later. The
> not-supported devices can only start the virtqueue when DRIVER_OK.
>
> 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/virtio/virtio.c | 14 ++++++++++++++
> include/hw/virtio/virtio.h | 2 ++
> 2 files changed, 16 insertions(+)
>
> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> index 0e9d41366f..141f18c633 100644
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -2050,6 +2050,20 @@ void virtio_queue_reset(VirtIODevice *vdev, uint32_t queue_index)
> __virtio_queue_reset(vdev, queue_index);
> }
>
> +void virtio_queue_enable(VirtIODevice *vdev, uint32_t queue_index)
> +{
> + VirtioDeviceClass *k = VIRTIO_DEVICE_GET_CLASS(vdev);
> +
> + if (!virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1)) {
> + error_report("queue_enable is only suppported in devices of virtio "
> + "1.0 or later.");
> + }
> +
> + if (k->queue_enable) {
> + k->queue_enable(vdev, queue_index);
> + }
> +}
> +
> void virtio_reset(void *opaque)
> {
> VirtIODevice *vdev = opaque;
> diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
> index 879394299b..085997d8f3 100644
> --- a/include/hw/virtio/virtio.h
> +++ b/include/hw/virtio/virtio.h
> @@ -131,6 +131,7 @@ struct VirtioDeviceClass {
> void (*reset)(VirtIODevice *vdev);
> void (*set_status)(VirtIODevice *vdev, uint8_t val);
> void (*queue_reset)(VirtIODevice *vdev, uint32_t queue_index);
> + void (*queue_enable)(VirtIODevice *vdev, uint32_t queue_index);
> /* For transitional devices, this is a bitmap of features
> * that are only exposed on the legacy interface but not
> * the modern one.
> @@ -270,6 +271,7 @@ int virtio_queue_set_host_notifier_mr(VirtIODevice *vdev, int n,
> int virtio_set_status(VirtIODevice *vdev, uint8_t val);
> void virtio_reset(void *opaque);
> void virtio_queue_reset(VirtIODevice *vdev, uint32_t queue_index);
> +void virtio_queue_enable(VirtIODevice *vdev, uint32_t queue_index);
> void virtio_update_irq(VirtIODevice *vdev);
> int virtio_set_features(VirtIODevice *vdev, uint64_t val);
>
next prev parent reply other threads:[~2022-08-23 7:41 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-16 1:06 [PATCH 00/24] Support VIRTIO_F_RING_RESET for virtio-net, vhost-user, vhost-kernel in virtio pci-modern Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 01/24] virtio: sync relevant definitions with linux Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 02/24] virtio: introduce __virtio_queue_reset() Kangjie Xu
2022-08-23 7:31 ` Jason Wang
2022-08-16 1:06 ` [PATCH v2 03/24] virtio: introduce virtio_queue_reset() Kangjie Xu
2022-08-23 7:32 ` Jason Wang
2022-08-16 1:06 ` [PATCH v2 04/24] virtio: introduce virtio_queue_enable() Kangjie Xu
2022-08-23 7:37 ` Jason Wang [this message]
2022-08-16 1:06 ` [PATCH v2 05/24] virtio: core: vq reset feature negotation support Kangjie Xu
2022-08-23 7:34 ` Jason Wang
2022-08-23 7:42 ` Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 06/24] virtio-pci: support queue reset Kangjie Xu
2022-08-23 7:40 ` Jason Wang
2022-08-23 7:52 ` Kangjie Xu
2022-08-24 8:56 ` Jason Wang
2022-08-16 1:06 ` [PATCH v2 07/24] virtio-pci: support queue enable Kangjie Xu
2022-08-23 7:44 ` Jason Wang
2022-08-23 8:20 ` Kangjie Xu
2022-08-24 8:59 ` Jason Wang
2022-08-24 11:27 ` Kangjie Xu
2022-08-25 2:52 ` Jason Wang
2022-08-25 3:38 ` Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 08/24] vhost: extract the logic of unmapping the vrings and desc Kangjie Xu
2022-08-23 7:45 ` Jason Wang
2022-08-16 1:06 ` [PATCH v2 09/24] vhost: introduce vhost_dev_virtqueue_stop() Kangjie Xu
2022-08-23 7:52 ` Jason Wang
2022-08-23 8:03 ` Kangjie Xu
2022-08-24 2:40 ` Jason Wang
2022-08-16 1:06 ` [PATCH v2 10/24] vhost: introduce vhost_dev_virtqueue_restart() Kangjie Xu
2022-08-24 2:37 ` Jason Wang
2022-08-24 2:44 ` Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 11/24] vhost-net: vhost-kernel: introduce vhost_net_virtqueue_stop() Kangjie Xu
2022-08-24 2:40 ` Jason Wang
2022-08-24 2:46 ` Kangjie Xu
2022-08-24 3:33 ` Kangjie Xu
2022-08-24 9:00 ` Jason Wang
2022-08-16 1:06 ` [PATCH v2 12/24] vhost-net: vhost-kernel: introduce vhost_net_virtqueue_restart() Kangjie Xu
2022-08-24 2:44 ` Jason Wang
2022-08-24 2:53 ` Kangjie Xu
2022-08-24 9:01 ` Jason Wang
2022-08-24 9:03 ` Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 13/24] docs: vhost-user: add VHOST_USER_RESET_VRING message Kangjie Xu
2022-08-24 2:46 ` Jason Wang
2022-08-16 1:06 ` [PATCH v2 14/24] vhost-user: introduce vhost_reset_vring() interface Kangjie Xu
2022-08-24 2:50 ` Jason Wang
2022-08-24 3:03 ` Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 15/24] vhost-user: add op to enable or disable a single vring Kangjie Xu
2022-08-24 2:53 ` Jason Wang
2022-08-24 3:09 ` Kangjie Xu
2022-08-24 9:02 ` Jason Wang
2022-08-24 9:09 ` Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 16/24] vhost: vhost-user: update vhost_dev_virtqueue_stop() Kangjie Xu
2022-08-24 3:56 ` Jason Wang
2022-08-24 4:59 ` Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 17/24] vhost: vhost-user: update vhost_dev_virtqueue_restart() Kangjie Xu
2022-08-24 4:03 ` Jason Wang
2022-08-24 5:04 ` Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 18/24] vhost-net: vhost-user: update vhost_net_virtqueue_stop() Kangjie Xu
2022-08-24 4:05 ` Jason Wang
2022-08-24 4:57 ` Kangjie Xu
2022-08-24 9:04 ` Jason Wang
2022-08-24 9:18 ` Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 19/24] vhost-net: vhost-user: update vhost_net_virtqueue_restart() Kangjie Xu
2022-08-24 4:06 ` Jason Wang
2022-08-16 1:06 ` [PATCH v2 20/24] virtio-net: introduce flush_or_purge_queued_packets() Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 21/24] virtio-net: support queue reset Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 22/24] virtio-net: support queue_enable Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 23/24] vhost: vhost-kernel: enable vq reset feature Kangjie Xu
2022-08-16 1:06 ` [PATCH v2 24/24] vhost: vhost-user: " Kangjie Xu
2022-08-16 6:14 ` [PATCH 00/24] Support VIRTIO_F_RING_RESET for virtio-net, vhost-user, vhost-kernel in virtio pci-modern Michael S. Tsirkin
2022-08-16 6:15 ` Xuan Zhuo
2022-08-16 6:22 ` Michael S. Tsirkin
2022-08-16 6:40 ` Xuan Zhuo
2022-08-17 6:46 ` Kangjie Xu
2022-08-23 1:49 ` Kangjie Xu
2022-08-24 4:10 ` Jason Wang
2022-08-24 4:11 ` Jason Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=268c8e26-2f82-2bd1-c751-6f8f6930d73f@redhat.com \
--to=jasowang@redhat.com \
--cc=eduardo@habkost.net \
--cc=f4bug@amsat.org \
--cc=hengqi@linux.alibaba.com \
--cc=kangjie.xu@linux.alibaba.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=wangyanan55@huawei.com \
--cc=xuanzhuo@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).