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

Panu Matilainen pmatilai at redhat.com
Mon Nov 23 12:42:10 CET 2015


On 11/23/2015 12:41 PM, Thomas Monjalon wrote:
> Hi Panu,
>
> 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.

>
> 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 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.

I'll send a separate patch for the regression.

	- Panu -

> Thanks
>



More information about the dev mailing list