Igor Russkikh
6c02043e99
app/testpmd: support sending cloned packets in flowgen
When testing high performance numbers, it is often that CPU performance limits the max values device can reach (both in pps and in gbps) Here instead of recreating each packet separately, we use clones counter to resend the same mbuf to the line multiple times. PMDs handle that transparently due to reference counting inside of mbuf. Reaching max PPS on small packet sizes helps here: Some data from our 2 port x 50G device. Using 2*6 tx queues, 64b packets, PowerEdge R7525, AMD EPYC 7452: ./build/app/dpdk-testpmd -l 32-63 -- --forward-mode=flowgen \ --rxq=6 --txq=6 --disable-crc-strip --burst=512 \ --flowgen-clones=0 --txd=4096 --stats-period=1 --txpkts=64 Gives ~46MPPS TX output: Tx-pps: 22926849 Tx-bps: 11738590176 Tx-pps: 23642629 Tx-bps: 12105024112 Setting flowgen-clones to 512 pushes TX almost to our device physical limit (68MPPS) using same 2*6 queues(cores): Tx-pps: 34357556 Tx-bps: 17591073696 Tx-pps: 34353211 Tx-bps: 17588802640 Doing similar measurements per core, I see one core can do 6.9MPPS (without clones) vs 11MPPS (with clones) Verified on Marvell qede and atlantic PMDs. Signed-off-by: Igor Russkikh <irusskikh@marvell.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
DPDK is a set of libraries and drivers for fast packet processing. It supports many processor architectures and both FreeBSD and Linux. The DPDK uses the Open Source BSD-3-Clause license for the core libraries and drivers. The kernel components are GPL-2.0 licensed. Please check the doc directory for release notes, API documentation, and sample application information. For questions and usage discussions, subscribe to: users@dpdk.org Report bugs and issues to the development mailing list: dev@dpdk.org
Description
Languages
C
99.1%
Meson
0.5%
Python
0.2%
Shell
0.1%