[dpdk-dev] [PATCH v4 3/5] bus/vdev: bus scan by multi-process channel

Burakov, Anatoly anatoly.burakov at intel.com
Mon Apr 23 11:54:47 CEST 2018


On 20-Apr-18 5:57 PM, Jianfeng Tan wrote:
> To scan the vdevs in primary, we send request to primary process
> to obtain the names for vdevs.
> 
> Only the name is shared from the primary. In probe(), the device
> driver is supposed to locate (or request more) the detail
> information from the primary.
> 
> Signed-off-by: Jianfeng Tan <jianfeng.tan at intel.com>
> Reviewed-by: Qi Zhang <qi.z.zhang at intel.com>
> ---

<...>

> +static int
> +vdev_action(const struct rte_mp_msg *mp_msg, const void *peer)
> +{
> +	struct rte_vdev_device *dev;
> +	struct rte_mp_msg mp_resp;
> +	struct vdev_param *ou = (struct vdev_param *)&mp_resp.param;
> +	const struct vdev_param *in = (const struct vdev_param *)mp_msg->param;
> +	const char *devname;
> +	int num;
> +
> +	strcpy(mp_resp.name, "vdev");

This string is used in a lot of places, so... #define? also, i think 
action name is a bit too short. maybe make it more descriptive, like 
"bus_vdev" or something to that effect?

Also, i think Coverity will complain about not checking string length, 
so... strlcpy()?

> +	mp_resp.len_param = sizeof(*ou);
> +	mp_resp.num_fds = 0;
> +
> +	switch (in->type) {
> +	case VDEV_SCAN_REQ:
> +		ou->type = VDEV_SCAN_ONE;
> +		ou->num = 1;
> +		num = 0;
> +
> +		rte_spinlock_lock(&vdev_device_list_lock);
> +		TAILQ_FOREACH(dev, &vdev_device_list, next) {
> +			devname = rte_vdev_device_name(dev);
> +			if (strlen(devname) == 0)
> +				VDEV_LOG(INFO, "vdev with no name is not sent");

The comment says it's "not sent" but code doesn't seem to indicate that 
this will happen. Forgot "continue"?

> +			VDEV_LOG(INFO, "send vdev, %s", devname);
> +			strlcpy(ou->name, devname, RTE_DEV_NAME_MAX_LEN);
> +			if (rte_mp_sendmsg(&mp_resp) < 0)
> +				VDEV_LOG(ERR, "send vdev, %s, failed, %s",
> +					 devname, strerror(rte_errno));
> +			num++;
> +		}

Once all of that is addressed,

Reviewed-by: Anatoly Burakov <anatoly.burakov at intel.com>

-- 
Thanks,
Anatoly


More information about the dev mailing list