[dpdk-dev] [PATCH] tools/dpdkdevbind.py: remove call to lower case for mod path

Mark Asselstine mark.asselstine at windriver.com
Mon May 1 17:24:13 CEST 2017


On Friday, April 28, 2017 11:38:17 AM EDT Thomas Monjalon wrote:
> 25/11/2016 04:16, alloc:
> > If the module path has upper case chars, the dpdk-devbind.py script will
> > crunch them to lower case.  This will result in the script never
> > finding a module.
> 
> I wonder why this "lower" was done.
> I'm afraid we are missing something.
> Nobody else is complaining about this issue.
> Please confirm it is a real issue.

The commit (d6537e6a7432ea9cf39fc4ab2112d4bce0e9fe57) that brought in the 
lower() call does not document any specific reason for its inclusion. So 
unfortunalely we can't rely on historic wisdom to rule out this change.

We can however look at the source to determine that the lower() call is bogus.

--- usertools/dpdk-devbind.py ---
    # check using depmod
    try:
        depmod_out = check_output(["modinfo", "-n", mod],
                                  stderr=subprocess.STDOUT).lower()
        if "error" not in depmod_out:
            path = depmod_out.strip()
            if exists(path):
                return path
    except:  # if modinfo can't find module, it fails, so continue
        pass
---
>From this we know that depmod_out will have the lowercase version of the path 
to the module. We also know that exists() is case sensitive and therein lies 
the issue. Since the path to the module will include kernel attributes the 
only reason folks may not be seeing this issue as that the attributes are only 
numbers, periods and lowercase alpha chars. Add a singe upper alpha char in 
the kernel extended name and users will have this issue, as we have seen it.

Can Alloc improve the commit log to make this clear, sure. But the change is 
good and should be merged.

Mark







More information about the dev mailing list