On Tue, 21 Mar 2017 16:43:05 +1100 Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx> wrote: > On Mon, Mar 20, 2017 at 10:57:08PM -0600, Alex Williamson wrote: > >On Mon, 20 Mar 2017 18:34:23 -0500 > >Bodong Wang <bodong@xxxxxxxxxxxx> wrote: > > .../... > > >> > Bodong, I'm not sure if there is a requirement to load driver for the > >> > specified number of VFs? That indicates no driver will be loaded for > >> > other VFs. If so, this interface might serve the purpose as well. > >> Gavin, thanks for the review. That is indeed an interesting suggestion. > >> Theoretically, we can change that probe_vfs from boolean to integer. > >> And use it as a counter to probe the first N VFs(if N < total_vfs). > >> Let's see if there are any objections. > > > >Is it just me or does this seem like a confusing user interface, ie. to > >get binary on/off behavior a user now needs to 'cat total_vfs > > >sriov_probe_vfs'. It's not very intuitive, what's the use case for it? > > > > After it's changed to integer, it accepts number. If users want to load > driver for all VFs and don't want to check the maximal number of VFs, > they can simply write 0xffffffff. So "on" and "off" are replaced with 0xffffffff > and 0, but users has to press the keyboard more times though. > > drivers/net/ethernet/mellanox/mlx4/main.c::probe_vfs_argc allows to specify > the number of VFs with which we're going to bind drivers. Less time is needed > to enable SRIOV capability. As I had in some development environment: assume > PF supports 256 VFs and I'm going to enable all of them, but I only want to > load driver for two of them, then test the data path on those two VFs. Besides, > I can image the VF needn't a driver in host if it's going to be passed to guest. > Not sure how much sense it makes. Yes, I understand what you're trying to do, but I still think it's confusing for a user interface. This also doesn't answer what's the practical, typical user case you see where it's useful to probe some VFs but not others. The case listed is a development case where you could just as easily disable all probing, then manually bind the first two VFs to the host driver. Which is the better design, impose a confusing interface on all users to simplify an obscure development environment or simplify the user interface and assume developers know how to bind devices otherwise? Thanks, Alex