[dpdk-dev] [PATCH] doc: document the new devargs syntax

Yuanhan Liu yliu at fridaylinux.org
Thu Jan 25 15:41:42 CET 2018


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.


More information about the dev mailing list