qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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);
>   



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