From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.mhcomputing.net (master.mhcomputing.net [74.208.46.186]) by dpdk.org (Postfix) with ESMTP id AE7566A80 for ; Tue, 14 Oct 2014 07:38:31 +0200 (CEST) Received: by mail.mhcomputing.net (Postfix, from userid 1000) id 0050B80C50B; Mon, 13 Oct 2014 22:45:23 -0700 (PDT) Date: Mon, 13 Oct 2014 22:45:23 -0700 From: Matthew Hall To: dev@dpdk.org Message-ID: <20141014054523.GA16919@mhcomputing.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) Subject: [dpdk-dev] virtio UIO / PMD issues in default Ubuntu Cloud Images 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: Tue, 14 Oct 2014 05:38:31 -0000 Hello, I was working to get my open source project running in a VirtualBox Vagrant VM powered by an Ubuntu Cloud image the last few days to make my project and DPDK more developer friendly with a prebuilt environment. During this I was fixing the ugly hardcodings I'd used to hack it together on a desktop. In the process I found a few things I was confused about. 1) Ubuntu doesn't include the UIO module by default in the Cloud image... only the virtio-net. I was wondering if we had anybody in good contact with their kernel group to lobby for inclusion of the UIO modules in the stock Cloud kernel, without having to grab linux-generic and linux-headers-generic first. 2) The directions for activating virtio-net based interfaces seem out-of-date. They refer to the PMD as rte_virtio_net_pmd, when the PMD calls itself rte_virtio_pmd in my copy of DPDK 1.7.1 w/ my clang compilation patches added. I am getting some odd errors when I'm trying to load my app: EAL: PCI device 0000:00:08.0 on NUMA socket -1 EAL: probe driver: 1af4:1000 rte_virtio_pmd EAL: 0000:00:08.0 not managed by UIO driver, skipping 3) If I try to bind the device to the igb_uio driver even though it seems like the wrong thing to do, just for testing, this is what happens (NOTE: unbound the 00:08.0 device from the kernel to show this): $ sudo tools/dpdk_nic_bind.py --status Network devices using DPDK-compatible driver ============================================ Network devices using kernel driver =================================== 0000:00:03.0 'Virtio network device' if= drv=virtio-pci unused=igb_uio Other network devices ===================== 0000:00:08.0 'Virtio network device' unused=igb_uio $ sudo tools/dpdk_nic_bind.py -b igb_uio 00:08.0 Error: bind failed for 0000:00:08.0 - Cannot bind to driver igb_uio vagrant@vagrant-ubuntu-trusty-64:/vagrant/external/dpdk$ dmesg | tail [ 1766.445609] igb_uio: Use MSIX interrupt by default [ 1824.602075] igb_uio: probe of 0000:00:08.0 failed with error -2 [ 1824.602742] igb_uio: probe of 0000:00:08.0 failed with error -2 4) I found some old email threads asking about this: http://comments.gmane.org/gmane.comp.networking.dpdk.devel/1357 (there are some others as well but this seemed closest) But the only thing present in that thread seemed to be irritated replies which didn't really explain the different virtio PMD's out there and how they work, and didn't explain which ones were in-tree and out-of-tree either. So let me ask this again, when somebody wrote "virtio-net or virtio-net + uio (QEMU, VirtualBox)" into the supported page (http://dpdk.org/doc/nics), who tested this to prove it worked? How did they get it to work on VirtualBox? The last reply stating "you have the source code" didn't really explain how they proved this stuff ever worked in the first place. Thanks, Matthew.