On Fri, 14 Sep 2018 15:58:04 +0200 Gaëtan Rivet <gaetan.ri...@6wind.com> wrote:
> On Fri, Sep 14, 2018 at 02:19:19PM +0100, Ferruh Yigit wrote: > > On 9/14/2018 2:06 PM, Gaëtan Rivet wrote: > > > Hi, > > > > > > On Fri, Sep 14, 2018 at 01:46:59PM +0100, Ferruh Yigit wrote: > > >> On 8/30/2018 11:35 PM, Stephen Hemminger wrote: > > >>> From: Stephen Hemminger <sthem...@microsoft.com> > > >>> > > >>> Take device arguments from command line and put > > >>> them in the device devargs. > > >>> > > >>> Signed-off-by: Stephen Hemminger <sthem...@microsoft.com> > > >> > > >> <...> > > >> > > >>> @@ -204,6 +203,27 @@ vmbus_parse(const char *name, void *addr) > > >>> return ret; > > >>> } > > >>> > > >>> +/* > > >>> + * scan for matching device args on command line > > >>> + * example: > > >>> + * -w 'vmbus(635a7ae3-091e-4410-ad59-667c4f8c04c3,latency=20)' > > >> > > >> This is just in comment but, > > >> > > >> I guess latest syntax is: > > >> -w "vmbus:635a7ae3-091e-4410-ad59-667c4f8c04c3,latency=20" > > >> > > >> @Gaetan, is latest devarg syntax documented somewhere? > > > > > > That's the current syntax indeed. Some documentation is found at > > > > > > lib/librte_eal/common/include/rte_devargs.h:100 > > > > > > Where it is specified that the bus name can be either omitted or > > > followed by any character, to separate it from the device identifier. > > > > > > This means that using ':' is fine, as well as '('. As long as the device > > > PMD afterward ignore the dangling ')' during devargs parsing, this should > > > be fine. > > > > > > I don't think this is very clean, but it works. > > > > Thanks for the info, I see how "(" works, but ")" is takes as part of > > argument > > and causing problem, I think better to not give "()" as supported syntax at > > all. > > > > btw, now both -w and --vdev are valid and can be used interchangeably, > > right? I > > mean all following are valid? > > -w pci:0000:86:06.0,enable_floating_veb=1 > > -w vdev:net_pcap,iface=lo > > --vdev pci:0000:86:06.0,enable_floating_veb=1 > > --vdev vdev:net_pcap,iface=lo > > > > > > They are both valid but cannot be used interchangeably. > > This was the case at one point, between two rcs, because I had removed > the devtype and the bus black/white-listing was configured another way. > > A user complained about the API change because it was not announced in > time IIRC, and this was scrapped. Since then, the effort has been to on > the new syntax instead of cleaning the old system. > > They cannot be used interchangeably because an rte_devtype is defined by > the parameter choosen. BLACKLISTED_PCI for -b, WHITELISTED_PCI for -w, > and VIRTUAL for --vdev. > > -b will actually change the bus configuration to "blacklist mode", -w to > "whitelist mode", and --vdev will do nothing. > > So a PCI device declared using --vdev, will actually be skipped during > PCI probe because by default it operates in blacklist mode, and the > device policy is not WHITELISTED. This could surprise the one attempting > this trick. > > This semantic is subtle and bug-prone. I'm adding it to the pile of > reasons I'd like to remove the blacklist mode altogether. > It would have been nice if there was a --devargs instead of overloading -w and -b. Especially when just changing parameter on a device.