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 <linville at tuxdriver.com>
> > ---
> > 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 at 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 at tuxdriver.com                       might be all we have.  Be ready.

Reply via email to