On Wed, Jan 24, 2018 at 05:57:34PM +0100, Thomas Monjalon wrote: > 24/01/2018 16:04, Yuanhan Liu: > > On Wed, Jan 24, 2018 at 11:37:31AM +0100, Thomas Monjalon wrote: > > > 24/01/2018 11:36, Yuanhan Liu: > > > > On Wed, Jan 24, 2018 at 11:21:44AM +0100, Thomas Monjalon wrote: > > > > > 24/01/2018 10:28, Yuanhan Liu: > > > > > > On Wed, Jan 24, 2018 at 09:19:10AM +0100, Thomas Monjalon wrote: > > > > > > > 24/01/2018 07:43, Yuanhan Liu: > > > > > > > > On Tue, Jan 23, 2018 at 03:29:34PM +0100, Thomas Monjalon wrote: > > > > > > > > > 23/01/2018 13:46, Yuanhan Liu: > > > > > > > > > > If port not found, then the whole string will be used for > > > > > > > > > > dev attachment. > > > > > > > > > > It means we are attaching a port with PCI BDF == 04.00.0 AND > > > > > > > > > > port == 0 (the 2nd port will not be attached). > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > And here is how the devargs would look like if > > > > > > > > > > "matching;settings" is > > > > > > > > > > being used: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > bus=pci,id=04:00.0/class=eth,port=0;bus=pci,id=04:00.0/class=eth,port=0/driver=mlx4,mlx4_arg_A=val,... > > > > > > > > > > > > > > > > > > > > The part before ";" will be used for lookup and the later > > > > > > > > > > part will be > > > > > > > > > > used for attachment. It should work. It just looks > > > > > > > > > > redundant. > > > > > > > > > > > > > > > > > > It does not have to be redundant. > > > > > > > > > It can be: > > > > > > > > > > > > > > > > > > bus=pci,id=04:00.0/class=eth,port=0;driver=mlx4,mlx4_arg1=settings1,... > > > > > > > > > > > > > > > > I knew you would make such reply :) > > > > > > > > Then there is a contradiction. According your suggestion, the > > > > > > > > "port=0" belongs > > > > > > > > to the matching section, but it also has to be used in the > > > > > > > > settings section. > > > > > > > > > > > > > > If port=0 is matched, it is already set, right? > > > > > > > > > > > > Yes. > > > > > > > > > > > > > Why it needs to be in settings? > > > > > > > > > > > > But I was talking the case it's not matched, say it's not probed > > > > > > and here > > > > > > we do hotplug. > > > > > > > > > > I don't understand. > > > > > Anyway, the port property should be read-only. > > > > > > > > All proberties should be read-only. > > > > > > > > > Are we talking about the dev_port from the Linux kernel? > > > > > > > > Yes. And it can be used for probing one port only (out of 2 ports in a > > > > NIC) > > > > at probe stage. So, at this stage, it's a setting but not a match. > > > > > > No it's a match! > > > > > > A settings is changing data in the port. > > > > So I see that's your definition about the "settings". What I think is > > everything needed for driver initiation are settings. > > > > For example, one proposed interface for VF rep is the "vf_id" property, > > Similar to "port" property we have just discussed above, it's used for > > probing one specific VR rep for the given VF id. > > > > You can say it's a match here, just like the "port" property. > > > > But note that "vf_id" could be a range, to enable multiple VF reps. > > The semantics looks like "setting" more than "match". > > Not sure why it would look like settings. > > > Another example is from the failsafe PMD that Gaetan had mentioned: > > > > driver=failsafe,dev(bus=pci,id=00:02.0),fd(/some/file/) > > > > They (dev and fd) should belong the "setting" section, for 2 reasons: > > > > - they should not be used for matching > > - they are used for failsafe PMD initiation > > Yes these ones are settings. > > > But it belongs "match", according to your definition about "settings", > > because it doesn't change data in the port. > > No, it changes data, dev() is adding a slave, and fd() is adding > a file descriptor.
Then "port" should be settings, as it's used for adding a port. Moreover, "vf_id=0-3" is definitely settings (according your definition), as it's going to add 4 VF rep ports. --yliu > So we agree these are settings. > > > That also means, the word "settings" might not be well named. It's > > probably better to name it "drvargs". > > I disagree. But it's only naming. > Settings can be class settings, not only driver settings. > And driver properties can be matching or settings. > So "drvargs" does not make sense.