From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by dpdk.org (Postfix) with ESMTP id BD08B58D0 for ; Sat, 12 Jul 2014 00:50:47 +0200 (CEST) Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga101.ch.intel.com with ESMTP; 11 Jul 2014 15:51:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.01,646,1400050800"; d="scan'208";a="456084345" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by azsmga001.ch.intel.com with ESMTP; 11 Jul 2014 15:51:12 -0700 Received: from sivswdev02.ir.intel.com (sivswdev02.ir.intel.com [10.237.217.46]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id s6BMp9EU023696; Fri, 11 Jul 2014 23:51:09 +0100 Received: from sivswdev02.ir.intel.com (localhost [127.0.0.1]) by sivswdev02.ir.intel.com with ESMTP id s6BMp85d012084; Fri, 11 Jul 2014 23:51:08 +0100 Received: (from bricha3@localhost) by sivswdev02.ir.intel.com with id s6BMp8q2012080; Fri, 11 Jul 2014 23:51:08 +0100 Date: Fri, 11 Jul 2014 23:51:08 +0100 From: Bruce Richardson To: "John W. Linville" Message-ID: <20140711225108.GA9381@sivswdev02.ir.intel.com> References: <1405024369-30058-1-git-send-email-linville@tuxdriver.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405024369-30058-1-git-send-email-linville@tuxdriver.com> User-Agent: Mutt/1.5.23 (2014-03-12) Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH] librte_pmd_packet: add PMD for AF_PACKET-based virtual devices 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, 11 Jul 2014 22:50:48 -0000 On Thu, Jul 10, 2014 at 04:32:49PM -0400, John W. Linville wrote: > This is a Linux-specific virtual PMD driver backed by an AF_PACKET > socket. This implementation uses mmap'ed ring buffers to limit copying > and user/kernel transitions. The PACKET_FANOUT_HASH behavior of > AF_PACKET is used for frame reception. In the current implementation, > Tx and Rx queues are always paired, and therefore are always equal > in number -- changing this would be a Simple Matter Of Programming. > > Interfaces of this type are created with a command line option like > "--vdev=eth_packet0,iface=...". There are a number of options availabe > as arguments: > > - Interface is chosen by "iface" (required) > - Number of queue pairs set by "qpairs" (optional, default: 16) > - AF_PACKET MMAP block size set by "blocksz" (optional, default: 4096) > - AF_PACKET MMAP frame size set by "framesz" (optional, default: 2048) > - AF_PACKET MMAP frame count set by "framecnt" (optional, default: 512) > > Signed-off-by: John W. Linville > --- > This PMD is intended to provide a means for using DPDK on a broad > range of hardware without hardware-specific PMDs and (hopefully) > with better performance than what PCAP offers in Linux. This might > be useful as a development platform for DPDK applications when > DPDK-supported hardware is expensive or unavailable. > Hi John, I'm just trying this out now on a Fedora 20 machine, using kernel 3.14.9-200.fc20.x86_64. However, while the first packet PMD port initializes correctly, the subsequent ones do not. Please see output from my test run below. All four ports are of the same type. Regards, /Bruce bruce@silpixa00372841:dpdk.org$ sudo ./x86_64-native-linuxapp-gcc/app/testpmd -c 600 -n 4 --vdev=eth_packet0,iface=eth0,qpairs=1 --vdev=eth_packet1,iface=eth1,qpairs=1 --vdev=eth_packet2,iface=p802p1,qpairs=1 --vdev=eth_packet3,iface=p9p3,qpairs=1 -- --mbcache=250 --burst=32 --total-num-mbufs=65536EAL: Detected lcore 0 as core 0 on socket 0 EAL: Detected lcore 1 as core 1 on socket 0 EAL: Detected lcore 2 as core 2 on socket 0 EAL: Detected lcore 3 as core 3 on socket 0 EAL: Detected lcore 4 as core 4 on socket 0 EAL: Detected lcore 5 as core 5 on socket 0 EAL: Detected lcore 6 as core 6 on socket 0 EAL: Detected lcore 7 as core 7 on socket 0 EAL: Detected lcore 8 as core 0 on socket 1 EAL: Detected lcore 9 as core 1 on socket 1 EAL: Detected lcore 10 as core 2 on socket 1 EAL: Detected lcore 11 as core 3 on socket 1 EAL: Detected lcore 12 as core 4 on socket 1 EAL: Detected lcore 13 as core 5 on socket 1 EAL: Detected lcore 14 as core 6 on socket 1 EAL: Detected lcore 15 as core 7 on socket 1 EAL: Detected lcore 16 as core 0 on socket 0 EAL: Detected lcore 17 as core 1 on socket 0 EAL: Detected lcore 18 as core 2 on socket 0 EAL: Detected lcore 19 as core 3 on socket 0 EAL: Detected lcore 20 as core 4 on socket 0 EAL: Detected lcore 21 as core 5 on socket 0 EAL: Detected lcore 22 as core 6 on socket 0 EAL: Detected lcore 23 as core 7 on socket 0 EAL: Detected lcore 24 as core 0 on socket 1 EAL: Detected lcore 25 as core 1 on socket 1 EAL: Detected lcore 26 as core 2 on socket 1 EAL: Detected lcore 27 as core 3 on socket 1 EAL: Detected lcore 28 as core 4 on socket 1 EAL: Detected lcore 29 as core 5 on socket 1 EAL: Detected lcore 30 as core 6 on socket 1 EAL: Detected lcore 31 as core 7 on socket 1 EAL: Support maximum 64 logical core(s) by configuration. EAL: Detected 32 lcore(s) EAL: No free hugepages reported in hugepages-2048kB EAL: unsupported IOMMU type! EAL: VFIO support could not be initialized EAL: Setting up memory... EAL: Ask a virtual area of 0x80000000 bytes EAL: Virtual area found at 0x7f9fc0000000 (size = 0x80000000) EAL: Ask a virtual area of 0x80000000 bytes EAL: Virtual area found at 0x7f9f00000000 (size = 0x80000000) EAL: Requesting 2 pages of size 1024MB from socket 0 EAL: Requesting 2 pages of size 1024MB from socket 1 EAL: TSC frequency is ~2693512 KHz EAL: Master core 9 is ready (tid=f4511880) init (0) eth_packet0 PMD: Initializing pmd_packet for eth_packet0 PMD: eth_packet0: AF_PACKET MMAP parameters: PMD: eth_packet0: block size 4096 PMD: eth_packet0: block count 256 PMD: eth_packet0: frame size 2048 PMD: eth_packet0: frame count 512 PMD: eth_packet0: creating AF_PACKET-backed ethdev on numa socket 1 init (0) eth_packet1 PMD: Initializing pmd_packet for eth_packet1 PMD: eth_packet1: AF_PACKET MMAP parameters: PMD: eth_packet1: block size 4096 PMD: eth_packet1: block count 256 PMD: eth_packet1: frame size 2048 PMD: eth_packet1: frame count 512 PMD: eth_packet1: creating AF_PACKET-backed ethdev on numa socket 1 PMD: eth_packet1: could not set PACKET_FANOUT on AF_PACKET socket for eth1 init (0) eth_packet2 PMD: Initializing pmd_packet for eth_packet2 PMD: eth_packet2: AF_PACKET MMAP parameters: PMD: eth_packet2: block size 4096 PMD: eth_packet2: block count 256 PMD: eth_packet2: frame size 2048 PMD: eth_packet2: frame count 512 PMD: eth_packet2: creating AF_PACKET-backed ethdev on numa socket 1 PMD: eth_packet2: could not set PACKET_FANOUT on AF_PACKET socket for p802p1 init (0) eth_packet3 PMD: Initializing pmd_packet for eth_packet3 PMD: eth_packet3: AF_PACKET MMAP parameters: PMD: eth_packet3: block size 4096 PMD: eth_packet3: block count 256 PMD: eth_packet3: frame size 2048 PMD: eth_packet3: frame count 512 PMD: eth_packet3: creating AF_PACKET-backed ethdev on numa socket 1 PMD: eth_packet3: could not set PACKET_FANOUT on AF_PACKET socket for p9p3 EAL: Core 10 is ready (tid=f34d9700) EAL: PCI device 0000:04:00.0 on NUMA socket 0 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: 0000:04:00.0 not managed by UIO driver, skipping EAL: PCI device 0000:04:00.1 on NUMA socket 0 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: 0000:04:00.1 not managed by UIO driver, skipping EAL: PCI device 0000:04:00.2 on NUMA socket 0 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: 0000:04:00.2 not managed by UIO driver, skipping EAL: PCI device 0000:04:00.3 on NUMA socket 0 EAL: probe driver: 8086:1521 rte_igb_pmd EAL: 0000:04:00.3 not managed by UIO driver, skipping EAL: PCI device 0000:0c:00.0 on NUMA socket 0 EAL: probe driver: 8086:10fb rte_ixgbe_pmd EAL: 0000:0c:00.0 not managed by UIO driver, skipping EAL: PCI device 0000:0c:00.1 on NUMA socket 0 EAL: probe driver: 8086:10fb rte_ixgbe_pmd EAL: 0000:0c:00.1 not managed by UIO driver, skipping EAL: PCI device 0000:84:00.0 on NUMA socket 1 EAL: probe driver: 8086:154a rte_ixgbe_pmd EAL: 0000:84:00.0 not managed by UIO driver, skipping EAL: PCI device 0000:84:00.1 on NUMA socket 1 EAL: probe driver: 8086:154a rte_ixgbe_pmd EAL: 0000:84:00.1 not managed by UIO driver, skipping EAL: PCI device 0000:87:00.0 on NUMA socket 1 EAL: probe driver: 8086:154a rte_ixgbe_pmd EAL: 0000:87:00.0 not managed by UIO driver, skipping EAL: PCI device 0000:87:00.1 on NUMA socket 1 EAL: probe driver: 8086:154a rte_ixgbe_pmd EAL: 0000:87:00.1 not managed by UIO driver, skipping EAL: PCI device 0000:8b:00.0 on NUMA socket 1 EAL: probe driver: 8086:154a rte_ixgbe_pmd EAL: 0000:8b:00.0 not managed by UIO driver, skipping EAL: PCI device 0000:8b:00.1 on NUMA socket 1 EAL: probe driver: 8086:154a rte_ixgbe_pmd EAL: 0000:8b:00.1 not managed by UIO driver, skipping EAL: PCI device 0000:8e:00.0 on NUMA socket 1 EAL: probe driver: 8086:154a rte_ixgbe_pmd EAL: 0000:8e:00.0 not managed by UIO driver, skipping EAL: PCI device 0000:8e:00.1 on NUMA socket 1 EAL: probe driver: 8086:154a rte_ixgbe_pmd EAL: 0000:8e:00.1 not managed by UIO driver, skipping Configuring Port 0 (socket 0) Port 0: 68:05:CA:19:F0:50 Checking link statuses... Port 0 Link Up - speed 10000 Mbps - full-duplex Done No commandline core given, start packet forwarding Warning! Cannot handle an odd number of ports with the current port topology. Configuration must be changed to have an even number of ports, or relaunch application with --port-topology=chained io packet forwarding - CRC stripping disabled - packets/burst=32 nb forwarding cores=1 - nb forwarding ports=1 RX queues=1 - RX desc=128 - RX free threshold=0 RX threshold registers: pthresh=8 hthresh=8 wthresh=0 TX queues=1 - TX desc=512 - TX free threshold=0 TX threshold registers: pthresh=32 hthresh=0 wthresh=0 TX RS bit threshold=0 - TXQ flags=0x0 Press enter to exit