Commit c8068d9b authored by Si-Wei Liu's avatar Si-Wei Liu Committed by Michael S. Tsirkin
Browse files

vhost-vdpa: uAPI to get dedicated descriptor group id



With _F_DESC_ASID backend feature, the device can now support the
VHOST_VDPA_GET_VRING_DESC_GROUP ioctl, and it may expose the descriptor
table (including avail and used ring) in a different group than the
buffers it contains. This new uAPI will fetch the group ID of the
descriptor table.

Signed-off-by: default avatarSi-Wei Liu <si-wei.liu@oracle.com>
Acked-by: default avatarEugenio Pérez <eperezma@redhat.com>
Acked-by: default avatarJason Wang <jasowang@redhat.com>
Message-Id: <20231018171456.1624030-6-dtatulea@nvidia.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Reviewed-by: default avatarSi-Wei Liu <si-wei.liu@oracle.com>
Tested-by: default avatarSi-Wei Liu <si-wei.liu@oracle.com>
Tested-by: default avatarLei Yang <leiyang@redhat.com>
parent 7db0d602
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -613,6 +613,16 @@ static long vhost_vdpa_vring_ioctl(struct vhost_vdpa *v, unsigned int cmd,
		else if (copy_to_user(argp, &s, sizeof(s)))
			return -EFAULT;
		return 0;
	case VHOST_VDPA_GET_VRING_DESC_GROUP:
		if (!vhost_vdpa_has_desc_group(v))
			return -EOPNOTSUPP;
		s.index = idx;
		s.num = ops->get_vq_desc_group(vdpa, idx);
		if (s.num >= vdpa->ngroups)
			return -EIO;
		else if (copy_to_user(argp, &s, sizeof(s)))
			return -EFAULT;
		return 0;
	case VHOST_VDPA_SET_GROUP_ASID:
		if (copy_from_user(&s, argp, sizeof(s)))
			return -EFAULT;
+8 −0
Original line number Diff line number Diff line
@@ -219,4 +219,12 @@
 */
#define VHOST_VDPA_RESUME		_IO(VHOST_VIRTIO, 0x7E)

/* Get the group for the descriptor table including driver & device areas
 * of a virtqueue: read index, write group in num.
 * The virtqueue index is stored in the index field of vhost_vring_state.
 * The group ID of the descriptor table for this specific virtqueue
 * is returned via num field of vhost_vring_state.
 */
#define VHOST_VDPA_GET_VRING_DESC_GROUP	_IOWR(VHOST_VIRTIO, 0x7F,	\
					      struct vhost_vring_state)
#endif