From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2F237A09E4; Fri, 29 Jan 2021 11:31:07 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1C341240134; Fri, 29 Jan 2021 11:31:07 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 72A0040694 for ; Fri, 29 Jan 2021 11:31:05 +0100 (CET) IronPort-SDR: kHGELVNIV/5nanrnOwQESyVoW0hyi1+7e2gUqMwqI5TmMgL+9Se/wizrC9b3DTlIhLKr/YpcMk xg+u+R5GoxBw== X-IronPort-AV: E=McAfee;i="6000,8403,9878"; a="176894490" X-IronPort-AV: E=Sophos;i="5.79,385,1602572400"; d="scan'208";a="176894490" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jan 2021 02:31:04 -0800 IronPort-SDR: 0VzGeGgfvz28XzSaVlWnwgmIF+I0wSJbfF8X+QvyQWTvKRZKxzU+L0aw03ThKvdo+JqvUo4pab VhgGKRnhbhBg== X-IronPort-AV: E=Sophos;i="5.79,385,1602572400"; d="scan'208";a="389247172" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.213.197.204]) ([10.213.197.204]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jan 2021 02:31:02 -0800 To: Igor Russkikh , dev@dpdk.org Cc: Rasesh Mody , Devendra Singh Rawat , Wenzhuo Lu , Beilei Xing , Bernard Iremonger , David Marchand References: <20210121180530.2984-1-irusskikh@marvell.com> From: Ferruh Yigit Message-ID: Date: Fri, 29 Jan 2021 10:30:58 +0000 MIME-Version: 1.0 In-Reply-To: <20210121180530.2984-1-irusskikh@marvell.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH v2] app/testpmd: tx pkt clones parameter in flowgen X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 1/21/2021 6:05 PM, Igor Russkikh wrote: > 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. > > v2: > - fixed warning on uninit var > v1: > - fixes on Ferruh's comments > > rfc v2: http://patchwork.dpdk.org/patch/78800/ > - increment ref counter for each mbuf pointer copy > rfc v1: http://patchwork.dpdk.org/patch/78674/ > > Signed-off-by: Igor Russkikh Reviewed-by: Ferruh Yigit Also a testpmd command to set the 'flowgen-clones' can be useful, for interactive mode. If you have time for it, can you please work on it too? Applied to dpdk-next-net/main, thanks.