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 protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to