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