All of lore.kernel.org
 help / color / mirror / Atom feed
From: Si-Wei Liu <si-wei.liu@oracle.com>
To: Eli Cohen <elic@nvidia.com>,
	mst@redhat.com, jasowang@redhat.com,
	virtualization@lists.linux-foundation.org
Cc: lvivier@redhat.com, eperezma@redhat.com
Subject: Re: [PATCH v1 6/7] vdpa: Add support for querying control virtqueue index
Date: Wed, 8 Dec 2021 16:59:22 -0800	[thread overview]
Message-ID: <d5c417f9-b55f-02b7-d141-aab913495657@oracle.com> (raw)
In-Reply-To: <20211208201430.73720-7-elic@nvidia.com>


On 12/8/2021 12:14 PM, Eli Cohen wrote:
> Add netlink attribute and callback function to query the control VQ
> index of a device.
>
> Example:
>
> $ vdpa dev config show vdpa-a
>    vdpa-a: mac 00:00:00:00:88:88 link up link_announce false max_vq_pairs 5 \
>    mtu 9000 ctrl_vq_idx 10
First, I am not sure if there's value or a case showing that expose and 
trace the guest ctrl_vq_idx value (running state) to admin users turns 
out to be useful. Previously I thought you want to expose it to QEMU but 
it seems this is a bit redundant, which can be deduced from max_vqp 
passing up to QEMU. Second, I don't feel running states such as 
link_announce and ctrl_vq_idx are qualified to be configuration field 
that can be displayed in 'vdpa dev config show'. Could you please 
clarify the scope for what kind of info this command should cover?

-Siwei

>
> Signed-off-by: Eli Cohen <elic@nvidia.com>
> ---
> v0 -> v1:
> 1. Use logic defined in the spec to deduce virtqueue index.
>
>   drivers/vdpa/vdpa.c       | 25 +++++++++++++++++++++++++
>   include/uapi/linux/vdpa.h |  1 +
>   2 files changed, 26 insertions(+)
>
> diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c
> index 3bf016e03512..b4d4b8a7ca4e 100644
> --- a/drivers/vdpa/vdpa.c
> +++ b/drivers/vdpa/vdpa.c
> @@ -712,6 +712,27 @@ static int vdpa_nl_cmd_dev_get_dumpit(struct sk_buff *msg, struct netlink_callba
>   	return msg->len;
>   }
>   
> +static int vdpa_dev_net_ctrl_vq_fill(struct vdpa_device *vdev,
> +				     struct sk_buff *msg,
> +				     struct virtio_net_config *config,
> +				     u64 features)
> +{
> +	u16 N;
> +
> +	/* control VQ index, if available, is deduced according to the logic
> +	 * described in the virtio spec in section 5.1.2
> +	 */
> +	if (!(features & BIT_ULL(VIRTIO_NET_F_CTRL_VQ)))
> +		return 0;
> +
> +	if (features & BIT_ULL(VIRTIO_NET_F_MQ))
> +		N = le16_to_cpu(config->max_virtqueue_pairs);
> +	else
> +		N = 1;
> +
> +	return nla_put_u16(msg, VDPA_ATTR_DEV_CTRL_VQ_IDX, 2 * N);
> +}
> +
>   static int vdpa_dev_net_mq_config_fill(struct vdpa_device *vdev,
>   				       struct sk_buff *msg, u64 features,
>   				       const struct virtio_net_config *config)
> @@ -730,6 +751,7 @@ static int vdpa_dev_net_config_fill(struct vdpa_device *vdev, struct sk_buff *ms
>   	struct virtio_net_config config = {};
>   	u64 features;
>   	u16 val_u16;
> +	int err;
>   
>   	vdpa_get_config(vdev, 0, &config, sizeof(config));
>   
> @@ -746,6 +768,9 @@ static int vdpa_dev_net_config_fill(struct vdpa_device *vdev, struct sk_buff *ms
>   		return -EMSGSIZE;
>   
>   	features = vdev->config->get_driver_features(vdev);
> +	err = vdpa_dev_net_ctrl_vq_fill(vdev, msg, &config, features);
> +	if (err)
> +		return err;
>   
>   	return vdpa_dev_net_mq_config_fill(vdev, msg, features, &config);
>   }
> diff --git a/include/uapi/linux/vdpa.h b/include/uapi/linux/vdpa.h
> index a252f06f9dfd..2e3a7f89f42d 100644
> --- a/include/uapi/linux/vdpa.h
> +++ b/include/uapi/linux/vdpa.h
> @@ -34,6 +34,7 @@ enum vdpa_attr {
>   	VDPA_ATTR_DEV_MAX_VQS,			/* u32 */
>   	VDPA_ATTR_DEV_MAX_VQ_SIZE,		/* u16 */
>   	VDPA_ATTR_DEV_MIN_VQ_SIZE,		/* u16 */
> +	VDPA_ATTR_DEV_CTRL_VQ_IDX,		/* u16 */
>   
>   	VDPA_ATTR_DEV_NET_CFG_MACADDR,		/* binary */
>   	VDPA_ATTR_DEV_NET_STATUS,		/* u8 */

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

  parent reply	other threads:[~2021-12-09  0:59 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20211208201430.73720-1-elic@nvidia.com>
     [not found] ` <20211208201430.73720-3-elic@nvidia.com>
2021-12-09  0:12   ` [PATCH v1 2/7] vdpa/mlx5: Distribute RX virtqueues in RQT object Si-Wei Liu
     [not found]     ` <20211209065504.GB108239@mtl-vdi-166.wap.labs.mlnx>
2021-12-10  8:26       ` Si-Wei Liu
     [not found] ` <20211208201430.73720-4-elic@nvidia.com>
2021-12-09  0:25   ` [PATCH v1 3/7] vdpa: Allow to configure max data virtqueues Si-Wei Liu
2021-12-09  5:36     ` Jason Wang
2021-12-09 21:50       ` Si-Wei Liu
2021-12-10  2:29         ` Jason Wang
     [not found]           ` <20211213064453.GD41423@mtl-vdi-166.wap.labs.mlnx>
     [not found]             ` <20211213130734.GB44427@mtl-vdi-166.wap.labs.mlnx>
2021-12-14  0:47               ` Si-Wei Liu
     [not found] ` <20211208201430.73720-2-elic@nvidia.com>
2021-12-08 23:57   ` [PATCH v1 1/7] vdpa: Provide interface to read driver features Si-Wei Liu
     [not found]     ` <20211209064702.GA108239@mtl-vdi-166.wap.labs.mlnx>
2021-12-09 22:29       ` Si-Wei Liu
2021-12-12  9:45         ` Michael S. Tsirkin
     [not found]         ` <20211212133854.GA8840@mtl-vdi-166.wap.labs.mlnx>
2021-12-13 22:34           ` [PATCH v1 1/7] vdpa: Provide interface to read driver featuresy Si-Wei Liu
2021-12-09  5:33   ` [PATCH v1 1/7] vdpa: Provide interface to read driver features Jason Wang
     [not found]     ` <20211209070654.GD108239@mtl-vdi-166.wap.labs.mlnx>
2021-12-09  7:55       ` Jason Wang
     [not found] ` <20211208201430.73720-6-elic@nvidia.com>
2021-12-09  5:43   ` [PATCH v1 5/7] vdpa/mlx5: Support configuring max data virtqueue pairs Jason Wang
     [not found] ` <20211208201430.73720-7-elic@nvidia.com>
2021-12-09  0:59   ` Si-Wei Liu [this message]
2021-12-09  5:44   ` [PATCH v1 6/7] vdpa: Add support for querying control virtqueue index Jason Wang
     [not found]     ` <20211209070904.GE108239@mtl-vdi-166.wap.labs.mlnx>
2021-12-09  7:55       ` Jason Wang
     [not found]         ` <20211209080414.GA110931@mtl-vdi-166.wap.labs.mlnx>
2021-12-09  8:17           ` Jason Wang
     [not found]             ` <20211209082618.GA111658@mtl-vdi-166.wap.labs.mlnx>
2021-12-09  9:12               ` Jason Wang
     [not found]                 ` <20211209092053.GA113385@mtl-vdi-166.wap.labs.mlnx>
2021-12-10  2:27                   ` Jason Wang
2021-12-13  3:05                   ` Jason Wang
     [not found] ` <20211208201430.73720-8-elic@nvidia.com>
2021-12-10  8:17   ` [PATCH v1 7/7] vdpa/mlx5: Restore cur_num_vqs in case of failure in change_num_qps() Si-Wei Liu

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=d5c417f9-b55f-02b7-d141-aab913495657@oracle.com \
    --to=si-wei.liu@oracle.com \
    --cc=elic@nvidia.com \
    --cc=eperezma@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=mst@redhat.com \
    --cc=virtualization@lists.linux-foundation.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.