All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2.3] tools/dpdk_nic_bind.py: Verbosely warn the user on bind
@ 2015-12-11 16:20 Aaron Conole
  2016-01-26 19:25 ` Aaron Conole
  2016-01-26 20:14 ` Thomas Monjalon
  0 siblings, 2 replies; 5+ messages in thread
From: Aaron Conole @ 2015-12-11 16:20 UTC (permalink / raw)
  To: dev

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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2.3] tools/dpdk_nic_bind.py: Verbosely warn the user on bind
  2015-12-11 16:20 [PATCH 2.3] tools/dpdk_nic_bind.py: Verbosely warn the user on bind Aaron Conole
@ 2016-01-26 19:25 ` Aaron Conole
  2016-01-26 20:14 ` Thomas Monjalon
  1 sibling, 0 replies; 5+ messages in thread
From: Aaron Conole @ 2016-01-26 19:25 UTC (permalink / raw)
  To: dev

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2.3] tools/dpdk_nic_bind.py: Verbosely warn the user on bind
  2015-12-11 16:20 [PATCH 2.3] tools/dpdk_nic_bind.py: Verbosely warn the user on bind Aaron Conole
  2016-01-26 19:25 ` Aaron Conole
@ 2016-01-26 20:14 ` Thomas Monjalon
  2016-01-26 20:21   ` David Marchand
  1 sibling, 1 reply; 5+ messages in thread
From: Thomas Monjalon @ 2016-01-26 20:14 UTC (permalink / raw)
  To: Aaron Conole, david.marchand; +Cc: dev

2015-12-11 11:20, Aaron Conole:
> 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.

I think it's better to improve hotplug and allow hot binding.
A work is in progress towards this direction.
David, can you confirm?
Is this patch still valuable in the meantime?

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

Please do not use camel case.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2.3] tools/dpdk_nic_bind.py: Verbosely warn the user on bind
  2016-01-26 20:14 ` Thomas Monjalon
@ 2016-01-26 20:21   ` David Marchand
  2016-03-01  8:38     ` Thomas Monjalon
  0 siblings, 1 reply; 5+ messages in thread
From: David Marchand @ 2016-01-26 20:21 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

On Tue, Jan 26, 2016 at 9:14 PM, Thomas Monjalon
<thomas.monjalon@6wind.com> wrote:
> 2015-12-11 11:20, Aaron Conole:
>> 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.
>
> I think it's better to improve hotplug and allow hot binding.
> A work is in progress towards this direction.
> David, can you confirm?

I intend to provide some rfc patches later this week, for next release.


-- 
David Marchand

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2.3] tools/dpdk_nic_bind.py: Verbosely warn the user on bind
  2016-01-26 20:21   ` David Marchand
@ 2016-03-01  8:38     ` Thomas Monjalon
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Monjalon @ 2016-03-01  8:38 UTC (permalink / raw)
  To: Aaron Conole; +Cc: dev

2016-01-26 21:21, David Marchand:
> On Tue, Jan 26, 2016 at 9:14 PM, Thomas Monjalon
> <thomas.monjalon@6wind.com> wrote:
> > 2015-12-11 11:20, Aaron Conole:
> >> 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.
> >
> > I think it's better to improve hotplug and allow hot binding.
> > A work is in progress towards this direction.
> > David, can you confirm?
> 
> I intend to provide some rfc patches later this week, for next release.

These "auto-hotplug" patches won't be ready for 16.04.
But it's possible to use a new bound device with rte_eth_dev_attach().
So this patch is rejected.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-03-01  8:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-11 16:20 [PATCH 2.3] tools/dpdk_nic_bind.py: Verbosely warn the user on bind Aaron Conole
2016-01-26 19:25 ` Aaron Conole
2016-01-26 20:14 ` Thomas Monjalon
2016-01-26 20:21   ` David Marchand
2016-03-01  8:38     ` Thomas Monjalon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.