Subject: Re: [PATCH net-next V0 19/21] mlx4_core: Modify driver initialization flow to accommodate SRIOV for Ethernet

From: Jack Morgenstein <[email-masked]>
Date: Tue, 6 Dec 2011 10:35:53 +0200

On Monday 05 December 2011 23:26, Ben Hutchings wrote:
> The 'probe_vf' parameter is very odd.  Why do you think it is necessary
> to make this a module parameter?  It should be possible to bind and
> unbind the driver from each VF dynamically via sysfs but this parameter
> appears to restrict that.
> 
The host which sees the PF will also see all the VFs once they come up.
As each VF appears (as seen by 'lspci'), the O/S will invoke the "probe"
method for that VF.  Without the "probe_vf" parameter, this probe would
result in all the VFs being bound to the PF host (and thus unavailable for
guests).

The small section of code which makes use of the probe_vf parameter
(file net/ethernet/mellanox/mlx4_main.c):

	/* Detect if this device is a virtual function */
	if (id && id->driver_data & MLX4_VF) {
		/* When acting as pf, we normally skip vfs unless explicitly
		 * requested to probe them. */
		if (sr_iov && extended_func_num(pdev) > probe_vf) {
			mlx4_warn(dev, "Skipping virtual function:%d\n",
						extended_func_num(pdev));
			err = -ENODEV;
			goto err_free_dev;
		}

If you invoke "dmesg" on the PF host, you will see a series of the
"Skipping... " messages, one per VF.  If probe_vf > 0, the PF-host will
reserve some VFs for its own use, and not issue the "Skipping..." message
for those VFs.

-Jack
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email-masked]
More majordomo info at  http://vger.kernel.org/majordomo-info.html