[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa
From: |
Jason Wang |
Subject: |
Re: [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa |
Date: |
Thu, 20 Oct 2022 12:22:50 +0800 |
On Wed, Oct 19, 2022 at 8:52 PM Eugenio Pérez <eperezma@redhat.com> wrote:
>
> At this moment only _F_LOG is added there.
>
> However future patches add features that depend on the kind of device.
> In particular, only net devices can add VIRTIO_F_GUEST_ANNOUNCE. So
> let's allow vhost_vdpa creator to set custom emulated device features.
>
> Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
> ---
> include/hw/virtio/vhost-vdpa.h | 2 ++
> hw/virtio/vhost-vdpa.c | 8 ++++----
> net/vhost-vdpa.c | 4 ++++
> 3 files changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/include/hw/virtio/vhost-vdpa.h b/include/hw/virtio/vhost-vdpa.h
> index 1111d85643..50083e1e3b 100644
> --- a/include/hw/virtio/vhost-vdpa.h
> +++ b/include/hw/virtio/vhost-vdpa.h
> @@ -31,6 +31,8 @@ typedef struct vhost_vdpa {
> bool iotlb_batch_begin_sent;
> MemoryListener listener;
> struct vhost_vdpa_iova_range iova_range;
> + /* VirtIO device features that can be emulated by qemu */
> + uint64_t added_features;
Any reason we need a per vhost_vdpa storage for this? Or is there a
chance that this field could be different among the devices?
Thanks
> uint64_t acked_features;
> bool shadow_vqs_enabled;
> /* IOVA mapping used by the Shadow Virtqueue */
> diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
> index 7468e44b87..ddb5e29288 100644
> --- a/hw/virtio/vhost-vdpa.c
> +++ b/hw/virtio/vhost-vdpa.c
> @@ -660,8 +660,8 @@ static int vhost_vdpa_set_features(struct vhost_dev *dev,
>
> v->acked_features = features;
>
> - /* We must not ack _F_LOG if SVQ is enabled */
> - features &= ~BIT_ULL(VHOST_F_LOG_ALL);
> + /* Do not ack features emulated by qemu */
> + features &= ~v->added_features;
> }
>
> trace_vhost_vdpa_set_features(dev, features);
> @@ -1244,8 +1244,8 @@ static int vhost_vdpa_get_features(struct vhost_dev
> *dev,
> int ret = vhost_vdpa_get_dev_features(dev, features);
>
> if (ret == 0 && v->shadow_vqs_enabled) {
> - /* Add SVQ logging capabilities */
> - *features |= BIT_ULL(VHOST_F_LOG_ALL);
> + /* Add emulated capabilities */
> + *features |= v->added_features;
> }
>
> return ret;
> diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
> index eebf29f5c1..3803452800 100644
> --- a/net/vhost-vdpa.c
> +++ b/net/vhost-vdpa.c
> @@ -599,6 +599,10 @@ static NetClientState
> *net_vhost_vdpa_init(NetClientState *peer,
> s->vhost_vdpa.index = queue_pair_index;
> s->vhost_vdpa.shadow_vqs_enabled = svq;
> s->vhost_vdpa.iova_tree = iova_tree;
> + if (svq) {
> + /* Add SVQ logging capabilities */
> + s->vhost_vdpa.added_features |= BIT_ULL(VHOST_F_LOG_ALL);
> + }
> if (!is_datapath) {
> s->cvq_cmd_out_buffer = qemu_memalign(qemu_real_host_page_size(),
>
> vhost_vdpa_net_cvq_cmd_page_len());
> --
> 2.31.1
>
- [RFC PATCH v2 0/8] Guest announce feature emulation using Shadow VirtQueue, Eugenio Pérez, 2022/10/19
- [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa, Eugenio Pérez, 2022/10/19
- Re: [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa,
Jason Wang <=
- Re: [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa, Eugenio Perez Martin, 2022/10/20
- Re: [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa, Jason Wang, 2022/10/20
- Re: [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa, Eugenio Perez Martin, 2022/10/21
- Re: [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa, Jason Wang, 2022/10/23
- Re: [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa, Eugenio Perez Martin, 2022/10/24
- Re: [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa, Jason Wang, 2022/10/24
- Re: [RFC PATCH v2 2/8] vdpa: Save emulated features list in vhost_vdpa, Eugenio Perez Martin, 2022/10/25
[RFC PATCH v2 3/8] vhost_net: Emulate link state up if backend doesn't expose it, Eugenio Pérez, 2022/10/19