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 at intel.com > 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 >