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

Reply via email to