[dpdk-dev] [PATCH 2.3] tools/dpdk_nic_bind.py: Verbosely warn the user on bind

Aaron Conole aconole at redhat.com
Tue Jan 26 20:25:48 CET 2016


Ping... This patch has been sitting^Hrotting for a bit over a month.

> DPDK ports are only detected during the EAL initialization. After that, any
> new DPDK ports which are bound will not be visible to the application.
>
> The dpdk_nic_bind.py can be a bit more helpful to let users know that DPDK
> enabled applications will not find rebound ports until after they have been
> restarted.
>
> Signed-off-by: Aaron Conole <aconole at redhat.com>
>
> ---
> tools/dpdk_nic_bind.py | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/tools/dpdk_nic_bind.py b/tools/dpdk_nic_bind.py
> index f02454e..ca39389 100755
> --- a/tools/dpdk_nic_bind.py
> +++ b/tools/dpdk_nic_bind.py
> @@ -344,8 +344,10 @@ def bind_one(dev_id, driver, force):
>              dev["Driver_str"] = "" # clear driver string
> 
>      # if we are binding to one of DPDK drivers, add PCI id's to that driver
> +    bDpdkDriver = False
>      if driver in dpdk_drivers:
>          filename = "/sys/bus/pci/drivers/%s/new_id" % driver
> +        bDpdkDriver = True
>          try:
>              f = open(filename, "w")
>          except:
> @@ -371,12 +373,18 @@ def bind_one(dev_id, driver, force):
>      try:
>          f.write(dev_id)
>          f.close()
> +        if bDpdkDriver:
> +            print "Device rebound to dpdk driver."
> +            print "Remember to restart any application that will use this port."
>      except:
>          # for some reason, closing dev_id after adding a new PCI ID to new_id
>          # results in IOError. however, if the device was successfully bound,
>          # we don't care for any errors and can safely ignore IOError
>          tmp = get_pci_device_details(dev_id)
>          if "Driver_str" in tmp and tmp["Driver_str"] == driver:
> +            if bDpdkDriver:
> +                print "Device rebound to dpdk driver."
> +                print "Remember to restart any application that will use this port."
>              return
>          print "Error: bind failed for %s - Cannot bind to driver %s" % (dev_id, driver)
>          if saved_driver is not None: # restore any previous driver


More information about the dev mailing list