From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi0-f47.google.com (mail-oi0-f47.google.com [209.85.218.47]) by dpdk.org (Postfix) with ESMTP id 86B854A6E for ; Fri, 7 Nov 2014 15:52:03 +0100 (CET) Received: by mail-oi0-f47.google.com with SMTP id a3so2507645oib.34 for ; Fri, 07 Nov 2014 07:01:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=JbbUl/ejMMqPfW2DjdL2PrjyM6ngjkSXkFsYtjwk/wY=; b=bTf/QHNjh4G+F7j8haFSfkj+ScoNI3s0W030W8W1e44m0yICaCr3eS43SeAaMYNFsb 4CTiRDXglLuqF12tVo0/javPaiN1C+awtnMo3eMi2Si+hufFHOgsRWYgujr9oTCCWOJ6 DYLwWhdEbHDyZWTPL8BsWXSPeCLtKfUBuy3DxRAeUJ+h0bomqTIg+z5BExSI6hbaYKyH zRa3nILTm5MGK2AzLjZwswI/7Pd6K9j29eK26SxuGnHY7vsGlt6XyIo+LX/JuaI9nDrG 7gsb9n1EuTx52EEG+G86KDGk057GqgeaNHiwxIWlClpaJS2RoOfvmsluVBsc11E4vhKu JCCw== MIME-Version: 1.0 X-Received: by 10.202.230.16 with SMTP id d16mr201946oih.105.1415372495003; Fri, 07 Nov 2014 07:01:35 -0800 (PST) Received: by 10.202.232.66 with HTTP; Fri, 7 Nov 2014 07:01:34 -0800 (PST) In-Reply-To: <20141105101246.GA9856@bricha3-MOBL3> References: <20141105101246.GA9856@bricha3-MOBL3> Date: Fri, 7 Nov 2014 20:31:34 +0530 Message-ID: From: Manoj Viswanath To: Bruce Richardson Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: dev@dpdk.org Subject: Re: [dpdk-dev] Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Nov 2014 14:52:04 -0000 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 =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=3Digb_ui= o 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_uio" optio= n 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 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. Th= is > > 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 t= o > 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 > > =E2=80=8B Driver=E2=80=8B > > ). > > > > 3. The reason for the error in [1] appears to be that "uio" sub-directo= ry > > 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 >