From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58]) by dpdk.org (Postfix) with ESMTP id E3C5B1F3 for ; Mon, 14 Jul 2014 15:59:28 +0200 (CEST) Received: from uucp by smtp.tuxdriver.com with local-rmail (Exim 4.63) (envelope-from ) id 1X6gnZ-0002DW-If; Mon, 14 Jul 2014 10:00:09 -0400 Received: from linville-x1.hq.tuxdriver.com (localhost.localdomain [127.0.0.1]) by linville-x1.hq.tuxdriver.com (8.14.8/8.14.6) with ESMTP id s6EDmXhK028192; Mon, 14 Jul 2014 09:48:33 -0400 Received: (from linville@localhost) by linville-x1.hq.tuxdriver.com (8.14.8/8.14.8/Submit) id s6EDmXcb028191; Mon, 14 Jul 2014 09:48:33 -0400 Date: Mon, 14 Jul 2014 09:48:33 -0400 From: "John W. Linville" To: Bruce Richardson Message-ID: <20140714134832.GD27848@tuxdriver.com> References: <1405024369-30058-1-git-send-email-linville@tuxdriver.com> <20140711225108.GA9381@sivswdev02.ir.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140711225108.GA9381@sivswdev02.ir.intel.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: Mon, 14 Jul 2014 13:59:29 -0000 On Fri, Jul 11, 2014 at 11:51:08PM +0100, Bruce Richardson wrote: > 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. Thanks I'll check into it. I'm not sure why you would only be able to set the fanout on the first port... > > 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 > > > -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready.