From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruce Richardson Subject: Re: Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment Date: Mon, 10 Nov 2014 10:58:03 +0000 Message-ID: <20141110105802.GA7036@bricha3-MOBL3> References: <20141105101246.GA9856@bricha3-MOBL3> <20141107153053.GA10376@bricha3-MOBL3> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: dev-VfR2kkLFssw@public.gmane.org To: Manoj Viswanath Return-path: Content-Disposition: inline In-Reply-To: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" On Fri, Nov 07, 2014 at 11:26:08PM +0530, Manoj Viswanath wrote: > Hi Bruce, >=20 > Please find my comment in lined. >=20 > On Fri, Nov 7, 2014 at 9:00 PM, Bruce Richardson > wrote: >=20 > > 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 applic= ation > > > 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 e= ach > > 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 sho= wn as > > > neither bound to kernel nor to IGB_UIO as evident from below output= :- > > > > > > > > <--------------------------------------------------------------------= -------------------------------> > > > Network devices using DPDK-compatible driver > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > > > > > > Network devices using kernel driver > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > 0000:00:03.0 'Virtio network device' if=3D drv=3Dvirtio-pci unused=3D= igb_uio > > > > > > Other network devices > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > 0000:00:04.0 '82540EM Gigabit Ethernet Controller' unused=3Digb_uio > > > 0000:00:05.0 '82540EM Gigabit Ethernet Controller' unused=3Digb_uio > > > > > <--------------------------------------------------------------------= -------------------------------> > > > > > > When i tried to forcefully bind the NICs using the "--bind=3Digb_ui= o" > > option > > > > Was there any output of the dpdk_nic_bind script? What does the outpu= t of > > it with --status show afterwards? > > > > =E2=80=8B > [MANOJ]=E2=80=8B >=20 > =E2=80=8BYes. Please refer below output:- > ******************************************************************** > Network devices using DPDK-compatible driver > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > 0000:00:04.0 '82540EM Gigabit Ethernet Controller' drv=3Digb_uio unused= =3D > 0000:00:05.0 '82540EM Gigabit Ethernet Controller' drv=3Digb_uio unused= =3D >=20 > Network devices using kernel driver > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > 0000:00:03.0 'Virtio network device' if=3D drv=3Dvirtio-pci unused=3Dig= b_uio >=20 > Other network devices > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =E2=80=8B > ******************************************************************** >=20 > =E2=80=8BHowever, when i start the DPDK application, i am getting the e= rror log as > indicated in earlier mail. =E2=80=8B >=20 > 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:- >=20 > =E2=80=8B**************************************************************= ****** > Network devices using DPDK-compatible driver > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > 0000:00:04.0 '82540EM Gigabit Ethernet Controller' drv=3Digb_uio unused= =3D > 0000:00:08.0 '82540EM Gigabit Ethernet Controller' drv=3Digb_uio unused= =3D >=20 > Network devices using kernel driver > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > 0000:00:03.0 'Virtio network device' if=3D drv=3Dvirtio-pci unused=3Dig= b_uio >=20 > Other network devices > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > ********************************************************************=E2= =80=8B >=20 > =E2=80=8BKindly note that in both cases, logs have been taken after loa= ding IGB_UIO > prior to starting DPDK application. =E2=80=8B >=20 > =E2=80=8B[/MANOJ]=E2=80=8B >=20 > 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 reaso= n 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=3D629395b063e8278a05ea41908d1152fa= 68df098c 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 p= erhaps use a debugger and find out what the file descriptor in question refers t= o? /Bruce