[dpdk-dev] [PATCH] eal: fix plugindir processing to be filesystem agnostic

Thomas Monjalon thomas.monjalon at 6wind.com
Mon Nov 23 14:54:28 CET 2015


2015-11-23 13:42, Panu Matilainen:
> On 11/23/2015 12:41 PM, Thomas Monjalon wrote:
> > 2015-11-23 08:04, Panu Matilainen:
> >> On 11/20/2015 06:38 PM, David Marchand wrote:
> >>> It looks like you would skip the symbolic links while you were not before.
> >>> Intended ?
> >>
> >> Intended. We want to accept symlinks in the driver directory, but the
> >> actual drivers are always regular files.
> >
> > No we use symbolic links:
> > http://dpdk.org/browse/dpdk/commit/mk/rte.lib.mk?id=133b75923
> > http://dpdk.org/browse/dpdk/tree/mk/rte.lib.mk#n170
> 
> Those symlinks eventually point to the actual drivers which are always 
> regular files (and not for example directories), that is the point. 
> Please apply.

Yes

> > On the same topic, you've added a check in 9f8eb1d9:
> > +		if (stat(solib->name, &sb) == -1) {
> > +			RTE_LOG(ERR, EAL, "Invalid plugin specified: %s: %s\n",
> > +				solib->name, strerror(errno));
> >
> > It is a regression because we cannot anymore load a plugin from
> > LD_LIBRARY_PATH without specifying its full path.
> > It can be tested with scripts/test-null.sh.
> > How do you suggest to fix it?
> 
> My first and foremost thought is regret over messing with -d at all, 
> instead of keeping with the original plan of a new -D option for 
> directories. Supporting directories with -d opened up all these annoying 
> little issues that did not exist in the original plan, and lost the 
> ability to disable/override the default plugindir.

I keep thinking having an unique option is a good thing.
If disabling the default directory is needed, we can imagine a special
syntax like -d-
Thanks for your work.

> I suppose the fix is to only use a successful stat to determine if 
> something is a directory and feed everything else to dlopen() which will 
> then fail on its own if file is not existent.

Yes sounds good.

> I'll send a separate patch for the regression.

Thanks



More information about the dev mailing list