dev.dpdk.org archive mirror
 help / color / mirror / Atom feed
* Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment
@ 2014-11-05  9:58 Manoj Viswanath
       [not found] ` <CAC1b25pX3R2y_Cjp5UAdL6Bozrf01OkG6U6LGQvJ2aUTDXGvSA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 8+ messages in thread
From: Manoj Viswanath @ 2014-11-05  9:58 UTC (permalink / raw)
  To: dev-VfR2kkLFssw

[-- Attachment #1: Type: text/plain, Size: 1607 bytes --]

Hi,

I have a DPDK application running on QEMU-KVM environment using DPDK 1.6.0.
I am trying to port the same to DPDK version 1.7.1.

I am using Virt-manager GUI to assign e1000 emulated port to the VM. This
works fine in DPDK 1.6.0. The device is identified by IGB_UIO and
initialized by my application as expected.

However in case of DPDK 1.7.1, the emulated e1000 devices do not seem to be
recognized.
Following is my analysis:

1. The API pci_get_uio_dev() is returning ERROR. This is called from
pci_uio_map_resource() in the flow of PCI PROBE [rte_eal_pci_probe()].

2. Due to this, the PCI device is not getting mapped to the correct driver
(EM
​ Driver​
).

3. The reason for the error in [1] appears to be that "uio" sub-directory
doesn't seem to be correctly created for interfaces assigned to this VM.

4. Upon further analysis i found that IGB_UIO probe function
["igbuio_pci_probe()"] is not getting triggered indicating the port has *not
been assigned* to the IGB_UIO.

Kindly refer to the attachments:-
- "Output of sys-bus-pci-devices" - indicating "uio" subdirectory not
created for PCI devices in case of DPDK 1.7.1
- "Output of lspci -v" - indicating device not bound to driver in case of
DPDK 1.7.1
- IGB_UIO init log snippet - indicating PCI devices not detected and
initialized by IGB_UIO in case of DPDK 1.7.1
- CONFIG file used for DPDK compilation

Not sure what has changed between 1.6.0 and 1.7.1 which is impacting this.

Could someone throw light in this regard as to what i may be missing ?

Thanks in advance.

Regards,
Manoj

[-- Attachment #2: IGB_UIO INIT Logs.txt --]
[-- Type: text/plain, Size: 1559 bytes --]

----------------------------------------------
[A] IGB UIO INIT LOGS - VM running DPDK 1.6.0
----------------------------------------------

Oct 20 05:14:31 localhost kernel: Use MSIX interrupt by default
Oct 20 05:14:31 localhost kernel: Use MSIX interrupt by default

Oct 20 05:14:31 localhost kernel: igb_uio 0000:00:04.0: setting latency timer to
 64
Oct 20 05:14:31 localhost kernel: fail to enable pci msix, or not enough msix en
tries
Oct 20 05:14:31 localhost kernel: fail to enable pci msix, or not enough msix en
tries
Oct 20 05:14:31 localhost kernel: uio device registered with irq b	-------------------------------------> PCI device bound to driver
Oct 20 05:14:31 localhost kernel: uio device registered with irq b

Oct 20 05:14:31 localhost kernel: igb_uio 0000:00:08.0: setting latency timer to
 64
Oct 20 05:14:31 localhost kernel: fail to enable pci msix, or not enough msix en
tries
Oct 20 05:14:31 localhost kernel: fail to enable pci msix, or not enough msix en
tries
Oct 20 05:14:31 localhost kernel: uio device registered with irq b	-------------------------------------> PCI device bound to driver
Oct 20 05:14:31 localhost kernel: uio device registered with irq b

----------------------------------------------
[B] IGB UIO INIT LOGS - VM running DPDK 1.7.1
----------------------------------------------

Oct 20 05:10:40 localhost kernel: igb_uio: Use MSIX interrupt by default
Oct 20 05:10:40 localhost kernel: igb_uio: Use MSIX interrupt by default
=====> No output for PCI initialization by IGB_UIO 

[-- Attachment #3: Output of lspci -v.txt --]
[-- Type: text/plain, Size: 1013 bytes --]

-------------------------
[VM-2 running DPDK 1.6.0]
-------------------------
00:08.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controll
er (rev 03)
    Subsystem: Red Hat, Inc Device 1100
    Flags: bus master, fast devsel, latency 0, IRQ 11
    Memory at f20a0000 (32-bit, non-prefetchable) [size=128K]
    I/O ports at c140 [size=64]
    Expansion ROM at f20c0000 [disabled] [size=128K]
    Kernel driver in use: igb_uio=================> Driver binding succesfull
    Kernel modules: igb_uio	==================> Driver binding succesfull

-------------------------
[VM-1 running DPDK 1.7.1]
-------------------------
00:04.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controll
er (rev 03)
    Subsystem: Red Hat, Inc Device 1100
    Flags: fast devsel, IRQ 11
    Memory at f2040000 (32-bit, non-prefetchable) [size=128K]
    I/O ports at c080 [size=64]
    Expansion ROM at f2060000 [disabled] [size=128K]
===> Missing driver binding info


[-- Attachment #4: Output of sys-bus-pci-devices.txt --]
[-- Type: text/plain, Size: 4777 bytes --]


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ On VM-1 running DPDK 1.7.1 @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

bash-4.2# lspci | grep 82540EM
00:04.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
00:05.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)

##SYS-BUS
bash-4.2# ls /sys/bus/pci/devices/               
0000:00:00.0  0000:00:01.2  0000:00:03.0  0000:00:06.0
0000:00:01.0  0000:00:01.3  0000:00:04.0  0000:00:07.0
0000:00:01.1  0000:00:02.0  0000:00:05.0  0000:00:08.0

bash-4.2# ls /sys/bus/pci/devices/0000\:00\:04.0/
broken_parity_status      local_cpulist             resource0
class                     local_cpus                resource1
config                    modalias                  rom
consistent_dma_mask_bits  msi_bus                   subsystem/
device                    numa_node                 subsystem_device
dma_mask_bits             power/                    subsystem_vendor
enable                    remove                    uevent
firmware_node/            rescan                    vendor
irq                       resource                  
bash-4.2# ls /sys/bus/pci/devices/0000\:00\:04.0/uio    
ls: cannot access /sys/bus/pci/devices/0000:00:04.0/uio: No such file or directory	============================> No directory

bash-4.2# ls /sys/bus/pci/devices/0000\:00\:05.0/
broken_parity_status      local_cpulist             resource0
class                     local_cpus                resource1
config                    modalias                  rom
consistent_dma_mask_bits  msi_bus                   subsystem/
device                    numa_node                 subsystem_device
dma_mask_bits             power/                    subsystem_vendor
enable                    remove                    uevent
firmware_node/            rescan                    vendor
irq                       resource                  
bash-4.2# ls /sys/bus/pci/devices/0000\:00\:05.0/uio    
ls: cannot access /sys/bus/pci/devices/0000:00:05.0/uio: No such file or directory	============================> No directory
bash-4.2#

##SYS-DEVICES
bash-4.2# ls /sys/devices/pci0000\:00/
0000:00:00.0/  0000:00:01.3/  0000:00:05.0/  firmware_node/ 
0000:00:01.0/  0000:00:02.0/  0000:00:06.0/  pci_bus/       
0000:00:01.1/  0000:00:03.0/  0000:00:07.0/  power/         
0000:00:01.2/  0000:00:04.0/  0000:00:08.0/  uevent         
bash-4.2# ls /sys/devices/pci0000\:00/0000:00:04.0/uio
ls: cannot access /sys/devices/pci0000:00/0000:00:04.0/uio: No such file or directory	============================> No directory
bash-4.2# ls /sys/devices/pci0000\:00/0000:00:04.0/   
broken_parity_status	  enable	 msi_bus    resource0	      uevent
class			  firmware_node  numa_node  resource1	      vendor
config			  irq		 power	    rom
consistent_dma_mask_bits  local_cpulist  remove     subsystem
device			  local_cpus	 rescan     subsystem_device
dma_mask_bits		  modalias	 resource   subsystem_vendor
bash-4.2# 

bash-4.2# ls /sys/devices/pci0000\:00/0000:00:05.0/uio
ls: cannot access /sys/devices/pci0000:00/0000:00:05.0/uio: No such file or directory	============================> No directory

bash-4.2# ls /sys/devices/pci0000\:00/0000:00:05.0/
broken_parity_status	  enable	 msi_bus    resource0	      uevent
class			  firmware_node  numa_node  resource1	      vendor
config			  irq		 power	    rom
consistent_dma_mask_bits  local_cpulist  remove     subsystem
device			  local_cpus	 rescan     subsystem_device
dma_mask_bits		  modalias	 resource   subsystem_vendor



--------------------------------------------------------------------------------------------------------------------------------------------------------

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ On VM-2 running DPDK 1.6.0 @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

bash-4.2# lspci | grep 82540EM
00:04.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)
00:08.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 03)

##SYS-BUS
bash-4.2# /sys/bus/pci/devices/0000\:00\:04.0/uio/uio0/			============================> Directory created correctly
device/    maps/      portio/    power/     subsystem/ 
bash-4.2# ls /sys/bus/pci/devices/0000\:00\:04.0/uio/uio0/
dev  device  event  maps  name	portio	power  subsystem  uevent  version

bash-4.2# ls /sys/bus/pci/devices/0000\:00\:08.0/uio/uio1/		============================> Directory created correctly
dev  device  event  maps  name	portio	power  subsystem  uevent  version


##SYS-DEVICES
bash-4.2# ls /sys/devices/pci0000:00/0000:00:04.0/uio/uio0
dev  device  event  maps  name	portio	power  subsystem  uevent  version
bash-4.2# 


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

* Re: Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment
       [not found] ` <CAC1b25pX3R2y_Cjp5UAdL6Bozrf01OkG6U6LGQvJ2aUTDXGvSA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2014-11-05 10:12   ` Bruce Richardson
  2014-11-07 15:01     ` Manoj Viswanath
  0 siblings, 1 reply; 8+ messages in thread
From: Bruce Richardson @ 2014-11-05 10:12 UTC (permalink / raw)
  To: Manoj Viswanath; +Cc: dev-VfR2kkLFssw

On Wed, Nov 05, 2014 at 03:28:13PM +0530, Manoj Viswanath wrote:
> Hi,
> 
> I have a DPDK application running on QEMU-KVM environment using DPDK 1.6.0.
> I am trying to port the same to DPDK version 1.7.1.
> 
> I am using Virt-manager GUI to assign e1000 emulated port to the VM. This
> works fine in DPDK 1.6.0. The device is identified by IGB_UIO and
> initialized by my application as expected.
> 
> However in case of DPDK 1.7.1, the emulated e1000 devices do not seem to be
> recognized.
> Following is my analysis:
> 
> 1. The API pci_get_uio_dev() is returning ERROR. This is called from
> pci_uio_map_resource() in the flow of PCI PROBE [rte_eal_pci_probe()].
> 
> 2. Due to this, the PCI device is not getting mapped to the correct driver
> (EM
> ​ Driver​
> ).
> 
> 3. The reason for the error in [1] appears to be that "uio" sub-directory
> doesn't seem to be correctly created for interfaces assigned to this VM.
> 
> 4. Upon further analysis i found that IGB_UIO probe function
> ["igbuio_pci_probe()"] is not getting triggered indicating the port has *not
> been assigned* to the IGB_UIO.
> 
> Kindly refer to the attachments:-
> - "Output of sys-bus-pci-devices" - indicating "uio" subdirectory not
> created for PCI devices in case of DPDK 1.7.1
> - "Output of lspci -v" - indicating device not bound to driver in case of
> DPDK 1.7.1
> - IGB_UIO init log snippet - indicating PCI devices not detected and
> initialized by IGB_UIO in case of DPDK 1.7.1
> - CONFIG file used for DPDK compilation
> 
> Not sure what has changed between 1.6.0 and 1.7.1 which is impacting this.
> 
> Could someone throw light in this regard as to what i may be missing ?
> 
> Thanks in advance.
> 
> Regards,
> Manoj

Hi Manoj,

can you perhaps give some details on how you were binding the device to the uio
module both for 1.6 and for 1.7?

/Bruce

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

* Re: Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment
  2014-11-05 10:12   ` Bruce Richardson
@ 2014-11-07 15:01     ` Manoj Viswanath
       [not found]       ` <CAC1b25pY-wbEeVicBEVhYChOqjWXNRHO51wQwc8q4uo28DGO2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 8+ messages in thread
From: Manoj Viswanath @ 2014-11-07 15:01 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev-VfR2kkLFssw

Hi Bruce,

I was not doing anything specific for binding the NICs to IGB_UIO (like
invoking "dpdk_nic_bind.py" script explicitly) when using my application
with DPDK 1.6.0. The e1000 devices assigned via virt-manager to the VM were
automatically getting picked up and initialized by IGB_UIO within each VM.

The same is not working with DPDK 1.7.1 now.

I tried exporting the "dpdk_nic_bind.py" script into my VM (running DPDK
1.7.1) and tried to check the status. The emulated devices were shown as
neither bound to kernel nor to IGB_UIO as evident from below output:-

<--------------------------------------------------------------------------------------------------->
Network devices using DPDK-compatible driver
============================================
<none>

Network devices using kernel driver
===================================
0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio

Other network devices
=====================
0000:00:04.0 '82540EM Gigabit Ethernet Controller' unused=igb_uio
0000:00:05.0 '82540EM Gigabit Ethernet Controller' unused=igb_uio
<--------------------------------------------------------------------------------------------------->

When i tried to forcefully bind the NICs using the "--bind=igb_uio" option
of the script, i am getting the following sequence of error log
continuously:-
<--------------------------------------------------------------------------------------------------->
........
........
EAL: Error reading from file descriptor 31: Input/output error
EAL: Error reading from file descriptor 32: Input/output error
........
........
<--------------------------------------------------------------------------------------------------->

Kindly advise.

Thanks in advance !

Regards,
Manoj

On Wed, Nov 5, 2014 at 3:42 PM, Bruce Richardson <bruce.richardson-ral2JQCrhuE@public.gmane.orgm
> wrote:

> On Wed, Nov 05, 2014 at 03:28:13PM +0530, Manoj Viswanath wrote:
> > Hi,
> >
> > I have a DPDK application running on QEMU-KVM environment using DPDK
> 1.6.0.
> > I am trying to port the same to DPDK version 1.7.1.
> >
> > I am using Virt-manager GUI to assign e1000 emulated port to the VM. This
> > works fine in DPDK 1.6.0. The device is identified by IGB_UIO and
> > initialized by my application as expected.
> >
> > However in case of DPDK 1.7.1, the emulated e1000 devices do not seem to
> be
> > recognized.
> > Following is my analysis:
> >
> > 1. The API pci_get_uio_dev() is returning ERROR. This is called from
> > pci_uio_map_resource() in the flow of PCI PROBE [rte_eal_pci_probe()].
> >
> > 2. Due to this, the PCI device is not getting mapped to the correct
> driver
> > (EM
> > ​ Driver​
> > ).
> >
> > 3. The reason for the error in [1] appears to be that "uio" sub-directory
> > doesn't seem to be correctly created for interfaces assigned to this VM.
> >
> > 4. Upon further analysis i found that IGB_UIO probe function
> > ["igbuio_pci_probe()"] is not getting triggered indicating the port has
> *not
> > been assigned* to the IGB_UIO.
> >
> > Kindly refer to the attachments:-
> > - "Output of sys-bus-pci-devices" - indicating "uio" subdirectory not
> > created for PCI devices in case of DPDK 1.7.1
> > - "Output of lspci -v" - indicating device not bound to driver in case of
> > DPDK 1.7.1
> > - IGB_UIO init log snippet - indicating PCI devices not detected and
> > initialized by IGB_UIO in case of DPDK 1.7.1
> > - CONFIG file used for DPDK compilation
> >
> > Not sure what has changed between 1.6.0 and 1.7.1 which is impacting
> this.
> >
> > Could someone throw light in this regard as to what i may be missing ?
> >
> > Thanks in advance.
> >
> > Regards,
> > Manoj
>
> Hi Manoj,
>
> can you perhaps give some details on how you were binding the device to
> the uio
> module both for 1.6 and for 1.7?
>
> /Bruce
>

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

* Re: Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment
       [not found]       ` <CAC1b25pY-wbEeVicBEVhYChOqjWXNRHO51wQwc8q4uo28DGO2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2014-11-07 15:30         ` Bruce Richardson
  2014-11-07 17:56           ` Manoj Viswanath
  0 siblings, 1 reply; 8+ messages in thread
From: Bruce Richardson @ 2014-11-07 15:30 UTC (permalink / raw)
  To: Manoj Viswanath; +Cc: dev-VfR2kkLFssw

On Fri, Nov 07, 2014 at 08:31:34PM +0530, Manoj Viswanath wrote:
> Hi Bruce,
> 
> I was not doing anything specific for binding the NICs to IGB_UIO (like
> invoking "dpdk_nic_bind.py" script explicitly) when using my application
> with DPDK 1.6.0. The e1000 devices assigned via virt-manager to the VM were
> automatically getting picked up and initialized by IGB_UIO within each VM.
> 
> The same is not working with DPDK 1.7.1 now.
> 
> I tried exporting the "dpdk_nic_bind.py" script into my VM (running DPDK
> 1.7.1) and tried to check the status. The emulated devices were shown as
> neither bound to kernel nor to IGB_UIO as evident from below output:-
> 
> <--------------------------------------------------------------------------------------------------->
> Network devices using DPDK-compatible driver
> ============================================
> <none>
> 
> Network devices using kernel driver
> ===================================
> 0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio
> 
> Other network devices
> =====================
> 0000:00:04.0 '82540EM Gigabit Ethernet Controller' unused=igb_uio
> 0000:00:05.0 '82540EM Gigabit Ethernet Controller' unused=igb_uio
> <--------------------------------------------------------------------------------------------------->
> 
> When i tried to forcefully bind the NICs using the "--bind=igb_uio" option

Was there any output of the dpdk_nic_bind script? What does the output of
it with --status show afterwards?

Regards,
/Bruce

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

* Re: Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment
  2014-11-07 15:30         ` Bruce Richardson
@ 2014-11-07 17:56           ` Manoj Viswanath
       [not found]             ` <CAC1b25rnhsG6njQ3uy3xsCOyXrCHxDZeKqdsPRZ4bdBvK+8caA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 8+ messages in thread
From: Manoj Viswanath @ 2014-11-07 17:56 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev-VfR2kkLFssw

Hi Bruce,

Please find my comment in lined.

On Fri, Nov 7, 2014 at 9:00 PM, Bruce Richardson <bruce.richardson-ral2JQCrhuE@public.gmane.orgm
> wrote:

> On Fri, Nov 07, 2014 at 08:31:34PM +0530, Manoj Viswanath wrote:
> > Hi Bruce,
> >
> > I was not doing anything specific for binding the NICs to IGB_UIO (like
> > invoking "dpdk_nic_bind.py" script explicitly) when using my application
> > with DPDK 1.6.0. The e1000 devices assigned via virt-manager to the VM
> were
> > automatically getting picked up and initialized by IGB_UIO within each
> VM.
> >
> > The same is not working with DPDK 1.7.1 now.
> >
> > I tried exporting the "dpdk_nic_bind.py" script into my VM (running DPDK
> > 1.7.1) and tried to check the status. The emulated devices were shown as
> > neither bound to kernel nor to IGB_UIO as evident from below output:-
> >
> >
> <--------------------------------------------------------------------------------------------------->
> > Network devices using DPDK-compatible driver
> > ============================================
> > <none>
> >
> > Network devices using kernel driver
> > ===================================
> > 0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio
> >
> > Other network devices
> > =====================
> > 0000:00:04.0 '82540EM Gigabit Ethernet Controller' unused=igb_uio
> > 0000:00:05.0 '82540EM Gigabit Ethernet Controller' unused=igb_uio
> >
> <--------------------------------------------------------------------------------------------------->
> >
> > When i tried to forcefully bind the NICs using the "--bind=igb_uio"
> option
>
> Was there any output of the dpdk_nic_bind script? What does the output of
> it with --status show afterwards?
>
> ​
[MANOJ]​

​Yes. Please refer below output:-
********************************************************************
Network devices using DPDK-compatible driver
============================================
0000:00:04.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=
0000:00:05.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=

Network devices using kernel driver
===================================
0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio

Other network devices
=====================
<none>​
********************************************************************

​However, when i start the DPDK application, i am getting the error log as
indicated in earlier mail. ​

The difference with DPDK 1.6.1 is that at the same stage IGB_UIO has
already bound the assigned devices without having to explicitly run the
"dpdk_nic_bind.py". Please find below the application log when run with
DPDK 1.6.0:-

​********************************************************************
Network devices using DPDK-compatible driver
============================================
0000:00:04.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=
0000:00:08.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=

Network devices using kernel driver
===================================
0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio

Other network devices
=====================
<none>
********************************************************************​

​Kindly note that in both cases, logs have been taken after loading IGB_UIO
prior to starting DPDK application. ​

​[/MANOJ]​

Regards,
> /Bruce
>
>
​Regards,
MANOJ

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

* Re: Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment
       [not found]             ` <CAC1b25rnhsG6njQ3uy3xsCOyXrCHxDZeKqdsPRZ4bdBvK+8caA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2014-11-10 10:58               ` Bruce Richardson
  2014-11-11 13:48                 ` Manoj Viswanath
  0 siblings, 1 reply; 8+ messages in thread
From: Bruce Richardson @ 2014-11-10 10:58 UTC (permalink / raw)
  To: Manoj Viswanath; +Cc: dev-VfR2kkLFssw

On Fri, Nov 07, 2014 at 11:26:08PM +0530, Manoj Viswanath wrote:
> Hi Bruce,
> 
> Please find my comment in lined.
> 
> On Fri, Nov 7, 2014 at 9:00 PM, Bruce Richardson <bruce.richardson@intel.com
> > wrote:
> 
> > On Fri, Nov 07, 2014 at 08:31:34PM +0530, Manoj Viswanath wrote:
> > > Hi Bruce,
> > >
> > > I was not doing anything specific for binding the NICs to IGB_UIO (like
> > > invoking "dpdk_nic_bind.py" script explicitly) when using my application
> > > with DPDK 1.6.0. The e1000 devices assigned via virt-manager to the VM
> > were
> > > automatically getting picked up and initialized by IGB_UIO within each
> > VM.
> > >
> > > The same is not working with DPDK 1.7.1 now.
> > >
> > > I tried exporting the "dpdk_nic_bind.py" script into my VM (running DPDK
> > > 1.7.1) and tried to check the status. The emulated devices were shown as
> > > neither bound to kernel nor to IGB_UIO as evident from below output:-
> > >
> > >
> > <--------------------------------------------------------------------------------------------------->
> > > Network devices using DPDK-compatible driver
> > > ============================================
> > > <none>
> > >
> > > Network devices using kernel driver
> > > ===================================
> > > 0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio
> > >
> > > Other network devices
> > > =====================
> > > 0000:00:04.0 '82540EM Gigabit Ethernet Controller' unused=igb_uio
> > > 0000:00:05.0 '82540EM Gigabit Ethernet Controller' unused=igb_uio
> > >
> > <--------------------------------------------------------------------------------------------------->
> > >
> > > When i tried to forcefully bind the NICs using the "--bind=igb_uio"
> > option
> >
> > Was there any output of the dpdk_nic_bind script? What does the output of
> > it with --status show afterwards?
> >
> > ​
> [MANOJ]​
> 
> ​Yes. Please refer below output:-
> ********************************************************************
> Network devices using DPDK-compatible driver
> ============================================
> 0000:00:04.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=
> 0000:00:05.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=
> 
> Network devices using kernel driver
> ===================================
> 0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio
> 
> Other network devices
> =====================
> <none>​
> ********************************************************************
> 
> ​However, when i start the DPDK application, i am getting the error log as
> indicated in earlier mail. ​
> 
> The difference with DPDK 1.6.1 is that at the same stage IGB_UIO has
> already bound the assigned devices without having to explicitly run the
> "dpdk_nic_bind.py". Please find below the application log when run with
> DPDK 1.6.0:-
> 
> ​********************************************************************
> Network devices using DPDK-compatible driver
> ============================================
> 0000:00:04.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=
> 0000:00:08.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=
> 
> Network devices using kernel driver
> ===================================
> 0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio
> 
> Other network devices
> =====================
> <none>
> ********************************************************************​
> 
> ​Kindly note that in both cases, logs have been taken after loading IGB_UIO
> prior to starting DPDK application. ​
> 
> ​[/MANOJ]​
> 
> Regards,

Ok, so it appears that after running dpdk_nic_bind to bind the devices to igb_uio
the differences between 1.6 and 1.7 are resolved for that part. The reason
why you explicitly need to bind the devices in 1.7 is due to this commit which
removes the pci id table from the igb_uio driver.

http://dpdk.org/browse/dpdk/commit/?id=629395b063e8278a05ea41908d1152fa68df098c

As for the other errors you are seeing, I'm not sure of the cause, though they
may be related to interrupt support for changes in link status. Can you perhaps
use a debugger and find out what the file descriptor in question refers to?

/Bruce

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

* Re: Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment
  2014-11-10 10:58               ` Bruce Richardson
@ 2014-11-11 13:48                 ` Manoj Viswanath
       [not found]                   ` <CAC1b25pK0CVmsAAKmMP-WnKt4sc07NOJ0yYh+o-NrkT8WcT74A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 8+ messages in thread
From: Manoj Viswanath @ 2014-11-11 13:48 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev-VfR2kkLFssw

Bruce,

Thanks for the input.
Sure, will figure out the offending file behind this error and update this
thread.

Meanwhile, wanted to share one more observation regarding this issue:
The "file descriptor error" is NOT SEEN with DPDK 1.7.0 (dpdk-1.7.0.tar.gz
<http://dpdk.org/browse/dpdk/snapshot/dpdk-1.7.0.tar.gz>) when explicitly
binding NICs to IGB_UIO using the .py script.

The issue is only seen when using DPDK 1.7.1 ( dpdk-1.7.1.tar.gz
<http://dpdk.org/browse/dpdk/snapshot/dpdk-1.7.1.tar.gz>). I hope the
version i am using is the last official tag in the 1.7.x tree.

I see that this problem ("file descriptor error") in DPDK 1.7.1 and its
non-occurrence in DPDK 1.7.0 has already been reported in this group on Sep
11 by zimeiw <zimeiw-9Onoh4P/yGk@public.gmane.org> in a mail with following subject line:- "*There
are a lot of error log when run l3fwd of dpdk-1.7.1*". Couldn't find any
responses to that thread.

Regards,
Manoj

On Mon, Nov 10, 2014 at 4:28 PM, Bruce Richardson <
bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> wrote:

> On Fri, Nov 07, 2014 at 11:26:08PM +0530, Manoj Viswanath wrote:
> > Hi Bruce,
> >
> > Please find my comment in lined.
> >
> > On Fri, Nov 7, 2014 at 9:00 PM, Bruce Richardson <
> bruce.richardson-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org
> > > wrote:
> >
> > > On Fri, Nov 07, 2014 at 08:31:34PM +0530, Manoj Viswanath wrote:
> > > > Hi Bruce,
> > > >
> > > > I was not doing anything specific for binding the NICs to IGB_UIO
> (like
> > > > invoking "dpdk_nic_bind.py" script explicitly) when using my
> application
> > > > with DPDK 1.6.0. The e1000 devices assigned via virt-manager to the
> VM
> > > were
> > > > automatically getting picked up and initialized by IGB_UIO within
> each
> > > VM.
> > > >
> > > > The same is not working with DPDK 1.7.1 now.
> > > >
> > > > I tried exporting the "dpdk_nic_bind.py" script into my VM (running
> DPDK
> > > > 1.7.1) and tried to check the status. The emulated devices were
> shown as
> > > > neither bound to kernel nor to IGB_UIO as evident from below output:-
> > > >
> > > >
> > >
> <--------------------------------------------------------------------------------------------------->
> > > > Network devices using DPDK-compatible driver
> > > > ============================================
> > > > <none>
> > > >
> > > > Network devices using kernel driver
> > > > ===================================
> > > > 0000:00:03.0 'Virtio network device' if= drv=virtio-pci
> unused=igb_uio
> > > >
> > > > Other network devices
> > > > =====================
> > > > 0000:00:04.0 '82540EM Gigabit Ethernet Controller' unused=igb_uio
> > > > 0000:00:05.0 '82540EM Gigabit Ethernet Controller' unused=igb_uio
> > > >
> > >
> <--------------------------------------------------------------------------------------------------->
> > > >
> > > > When i tried to forcefully bind the NICs using the "--bind=igb_uio"
> > > option
> > >
> > > Was there any output of the dpdk_nic_bind script? What does the output
> of
> > > it with --status show afterwards?
> > >
> > > ​
> > [MANOJ]​
> >
> > ​Yes. Please refer below output:-
> > ********************************************************************
> > Network devices using DPDK-compatible driver
> > ============================================
> > 0000:00:04.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=
> > 0000:00:05.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=
> >
> > Network devices using kernel driver
> > ===================================
> > 0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio
> >
> > Other network devices
> > =====================
> > <none>​
> > ********************************************************************
> >
> > ​However, when i start the DPDK application, i am getting the error log
> as
> > indicated in earlier mail. ​
> >
> > The difference with DPDK 1.6.1 is that at the same stage IGB_UIO has
> > already bound the assigned devices without having to explicitly run the
> > "dpdk_nic_bind.py". Please find below the application log when run with
> > DPDK 1.6.0:-
> >
> > ​********************************************************************
> > Network devices using DPDK-compatible driver
> > ============================================
> > 0000:00:04.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=
> > 0000:00:08.0 '82540EM Gigabit Ethernet Controller' drv=igb_uio unused=
> >
> > Network devices using kernel driver
> > ===================================
> > 0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio
> >
> > Other network devices
> > =====================
> > <none>
> > ********************************************************************​
> >
> > ​Kindly note that in both cases, logs have been taken after loading
> IGB_UIO
> > prior to starting DPDK application. ​
> >
> > ​[/MANOJ]​
> >
> > Regards,
>
> Ok, so it appears that after running dpdk_nic_bind to bind the devices to
> igb_uio
> the differences between 1.6 and 1.7 are resolved for that part. The reason
> why you explicitly need to bind the devices in 1.7 is due to this commit
> which
> removes the pci id table from the igb_uio driver.
>
>
> http://dpdk.org/browse/dpdk/commit/?id=629395b063e8278a05ea41908d1152fa68df098c
>
> As for the other errors you are seeing, I'm not sure of the cause, though
> they
> may be related to interrupt support for changes in link status. Can you
> perhaps
> use a debugger and find out what the file descriptor in question refers to?
>
> /Bruce
>

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

* Re: Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment
       [not found]                   ` <CAC1b25pK0CVmsAAKmMP-WnKt4sc07NOJ0yYh+o-NrkT8WcT74A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2014-11-12 14:12                     ` Bruce Richardson
  0 siblings, 0 replies; 8+ messages in thread
From: Bruce Richardson @ 2014-11-12 14:12 UTC (permalink / raw)
  To: Manoj Viswanath; +Cc: dev-VfR2kkLFssw

On Tue, Nov 11, 2014 at 07:18:32PM +0530, Manoj Viswanath wrote:
> Bruce,
> 
> Thanks for the input.
> Sure, will figure out the offending file behind this error and update this
> thread.
> 
> Meanwhile, wanted to share one more observation regarding this issue:
> The "file descriptor error" is NOT SEEN with DPDK 1.7.0 (dpdk-1.7.0.tar.gz
> <http://dpdk.org/browse/dpdk/snapshot/dpdk-1.7.0.tar.gz>) when explicitly
> binding NICs to IGB_UIO using the .py script.
> 
> The issue is only seen when using DPDK 1.7.1 ( dpdk-1.7.1.tar.gz
> <http://dpdk.org/browse/dpdk/snapshot/dpdk-1.7.1.tar.gz>). I hope the
> version i am using is the last official tag in the 1.7.x tree.
> 

Given that it's narrowed down to a change between 1.7.0 and 1.7.1 would it also
be possible for you to use git bisect to track down the commit that introduces
the error?

/Bruce

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

end of thread, other threads:[~2014-11-12 14:12 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-05  9:58 Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment Manoj Viswanath
     [not found] ` <CAC1b25pX3R2y_Cjp5UAdL6Bozrf01OkG6U6LGQvJ2aUTDXGvSA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-05 10:12   ` Bruce Richardson
2014-11-07 15:01     ` Manoj Viswanath
     [not found]       ` <CAC1b25pY-wbEeVicBEVhYChOqjWXNRHO51wQwc8q4uo28DGO2g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-07 15:30         ` Bruce Richardson
2014-11-07 17:56           ` Manoj Viswanath
     [not found]             ` <CAC1b25rnhsG6njQ3uy3xsCOyXrCHxDZeKqdsPRZ4bdBvK+8caA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-10 10:58               ` Bruce Richardson
2014-11-11 13:48                 ` Manoj Viswanath
     [not found]                   ` <CAC1b25pK0CVmsAAKmMP-WnKt4sc07NOJ0yYh+o-NrkT8WcT74A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-12 14:12                     ` Bruce Richardson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).