[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 05/40] vdpa: populate desc_group from net_vhost_vdpa_init
|
From: |
Jason Wang |
|
Subject: |
Re: [PATCH 05/40] vdpa: populate desc_group from net_vhost_vdpa_init |
|
Date: |
Thu, 11 Jan 2024 15:09:20 +0800 |
On Fri, Dec 8, 2023 at 2:50 AM Si-Wei Liu <si-wei.liu@oracle.com> wrote:
>
> Add the desc_group field to struct vhost_vdpa, and get it
> populated when the corresponding vq is initialized at
> net_vhost_vdpa_init. If the vq does not have descriptor
> group capability, or it doesn't have a dedicated ASID
> group to host descriptors other than the data buffers,
> desc_group will be set to a negative value -1.
>
> Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
> ---
> include/hw/virtio/vhost-vdpa.h | 1 +
> net/vhost-vdpa.c | 15 +++++++++++++--
> 2 files changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/include/hw/virtio/vhost-vdpa.h b/include/hw/virtio/vhost-vdpa.h
> index 6533ad2..63493ff 100644
> --- a/include/hw/virtio/vhost-vdpa.h
> +++ b/include/hw/virtio/vhost-vdpa.h
> @@ -87,6 +87,7 @@ typedef struct vhost_vdpa {
> Error *migration_blocker;
> VhostVDPAHostNotifier notifier[VIRTIO_QUEUE_MAX];
> IOMMUNotifier n;
> + int64_t desc_group;
> } VhostVDPA;
>
> int vhost_vdpa_get_iova_range(int fd, struct vhost_vdpa_iova_range
> *iova_range);
> diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
> index cb5705d..1a738b2 100644
> --- a/net/vhost-vdpa.c
> +++ b/net/vhost-vdpa.c
> @@ -1855,11 +1855,22 @@ static NetClientState
> *net_vhost_vdpa_init(NetClientState *peer,
>
> ret = vhost_vdpa_add(nc, (void *)&s->vhost_vdpa, queue_pair_index, nvqs);
> if (ret) {
> - qemu_del_net_client(nc);
> - return NULL;
> + goto err;
This part of introducing the "err" label looks more like a cleanup.
Others look good.
Thanks
> }
>
> + if (is_datapath) {
> + ret = vhost_vdpa_probe_desc_group(vdpa_device_fd, features,
> + 0, &desc_group, errp);
> + if (unlikely(ret < 0)) {
> + goto err;
> + }
> + }
> + s->vhost_vdpa.desc_group = desc_group;
> return nc;
> +
> +err:
> + qemu_del_net_client(nc);
> + return NULL;
> }
>
> static int vhost_vdpa_get_features(int fd, uint64_t *features, Error **errp)
> --
> 1.8.3.1
>
| [Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH 05/40] vdpa: populate desc_group from net_vhost_vdpa_init,
Jason Wang <=