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 5F9DFA04FD for ; Mon, 26 Dec 2022 21:04:55 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F01BB4114B; Mon, 26 Dec 2022 21:04:54 +0100 (CET) Received: from mail-lf1-f50.google.com (mail-lf1-f50.google.com [209.85.167.50]) by mails.dpdk.org (Postfix) with ESMTP id 13B6640E2D for ; Mon, 26 Dec 2022 21:04:54 +0100 (CET) Received: by mail-lf1-f50.google.com with SMTP id g13so17027443lfv.7 for ; Mon, 26 Dec 2022 12:04:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=e+diy5JZx+8WCjnMuhMILDjvSkeEFEFFMCuOE7fK5vY=; b=AlHa76W+QKxabpu/0eei4FL5cca+o1fLWkVYRSB27TpcLuLaYITypSgWmC3Ubzmj9q hsFAvsdzJ0m9e2tYxvoq0xle8hQsiUGO9bD5VjWXqDL+YzgPCRRnh+VW5jLNAUXT+o4E 9thQEDOA3Hq2RBvISrlBQIyp0a1prlUOwge5qxHIHQmANCbJXVkVtiqlFXYj0p7JNSl7 lxAjekfPVc7Ew0UFm+5zifXfI2eXb29Phn7LxeubTHbgdXU6PpNfyPw3sJEPBz0YQl8l SLvHycqIT7E044Bw2Ae4baQNS49cy0OVBwp8CvfcUIBOCoG9gIcUZTDRWaL17zbgOYC/ WrLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=e+diy5JZx+8WCjnMuhMILDjvSkeEFEFFMCuOE7fK5vY=; b=wp0uONHgnlB8ovaGFTj/XH7nt5Q4oYVPYfvl15z7R4dz20JENs5nZuMC0DclPWXtdn J5kS9751M+uiUGZ7yaiPT30naI2nIOCmlGGK558tvOL1MkTWfEIhb83DMv/O3hi0JG5S Tmg1LBoQsdy7d/suJKqaa/7soyUFqsPqf5K7oZCdGXhFnOj+Uvvbt1YKBzMS9MFW+iNf PzEi35pr8nklSd+7zmau7xuouXySzUpAzYr5sJ8UBob+jnOSXF1iMJtfkvB7PzBLaLsW s3EF1hi0E1eQi9g1sBMbnuliPDRQuX39NourpUPGNYULcCH+0WCtSvKPLPyoPopmgnH/ 6ozg== X-Gm-Message-State: AFqh2krh2GMDJbq5ljiV8StuiujR2MwYCvR50/CKdm5MWbEchRvQAlws I9gSOFxDO+OBek0GzDrfa4E= X-Google-Smtp-Source: AMrXdXsNz5FZ+hEWiH3oX/FgehBE+7K/kYuwGlT39ijCeRcPRu5X+8gDMZLCkM3Xx68im7x7BKbUhw== X-Received: by 2002:a05:6512:3288:b0:4a4:68b7:f87a with SMTP id p8-20020a056512328800b004a468b7f87amr8466598lfe.30.1672085093303; Mon, 26 Dec 2022 12:04:53 -0800 (PST) Received: from sovereign (broadband-37-110-65-23.ip.moscow.rt.ru. [37.110.65.23]) by smtp.gmail.com with ESMTPSA id o17-20020ac24351000000b0048a934168c0sm1925571lfl.35.2022.12.26.12.04.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Dec 2022 12:04:52 -0800 (PST) Date: Mon, 26 Dec 2022 23:04:51 +0300 From: Dmitry Kozlyuk To: "Ruslan R. Laishev" Cc: "users@dpdk.org" Subject: Re: Performance "problem" or how to get power of the DPDK Message-ID: <20221226230451.690c3986@sovereign> In-Reply-To: <279421672082645@mail.yandex.ru> References: <207831672055161@mail.yandex.ru> <20221226160753.11db04bb@sovereign> <52451672060184@mail.yandex.ru> <270941672081661@mail.yandex.ru> <279421672082645@mail.yandex.ru> X-Mailer: Claws Mail 3.18.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org 2022-12-26 22:24 (UTC+0300), Ruslan R. Laishev: > Sorry, right interface: > =C2=A0 > Network devices using DPDK-compatible driver > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > 0000:09:00.0 'Ethernet Connection X553 10 GbE SFP+ 15c4' drv=3Digb_uio un= used=3Dixgbe,vfio-pci > =C2=A0 > =C2=A0 > 26.12.2022, 22:21, "Ruslan R. Laishev" : > There is what i do at xmiter side, may be u will get a quantum to see a c= ode of pupil: =C2=A0https://pastebin.com/1WMyXtr5 I see nothing terribly wrong there. If you run it on more then one core each using a distinct Tx queue, do you see a performance increase? You might want to remove the shared atomic counter; use simple per-lcore counters and sum them for display. Also, if "g_nqueue" is not const, "%" should not be used on the data path. > > I spent some time with the testpmd, sorry but there is not an ability t= o get rate information on sending, may be i'll add it into the code ... Run testpmd as follows to make it transmit packets (add DPDK options before "--" as needed): dpdk-testpmd -- --forward-mode=3Dtxonly --tx-first It will print statistics on exit ("exit" or Ctrl+C). > > Some statistics (rte_eth_stats)=C2=A0=C2=A0: > > =C2=A0 > > Date;Time;Device;Port;Name;Area;In pkts;Out pkts;In bytes;Out bytes;In = missed;In errors;Out errors;No mbufs; > > (payload is 0 octets) > > 26-12-2022; 22:14:10; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 21122753; 0;= 1563085750; 0; 0; 0; 0 > > 26-12-2022; 22:14:20; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 21122392; 0;= 1563057008; 0; 0; 0; 0 > > 26-12-2022; 22:14:30; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 21121978; 0;= 1563024500; 0; 0; 0; 0 > > 26-12-2022; 22:14:40; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 21122012; 0;= 1563028888; 0; 0; 0; 0 > > =C2=A0 > > (payload is 1024 octets) > > 26-12-2022; 22:15:20; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 5246799; 0; = 4648659464; 0; 0; 0; 0 > > 26-12-2022; 22:15:30; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 5246456; 0; = 4648360016; 0; 0; 0; 0 > > 26-12-2022; 22:15:40; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 5246168; 0; = 4648108408; 0; 0; 0; 0 > > 26-12-2022; 22:15:50; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 5246143; 0; = 4648084478; 0; 0; 0; 0 > > 26-12-2022; 22:16:00; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 5246129; 0; = 4648070294; 0; 0; 0; 0 > > =C2=A0 > > A piece of the DPDK-DEVBIND.SH > > 0000:02:00.0 'I211 Gigabit Network Connection 1539' if=3Denp2s0 drv=3Di= gb unused=3Digb_uio,vfio-pci *Active* > > =C2=A0 > > 26.12.2022, 16:22, "Ruslan R. Laishev" : > > Thanks for the answer. > >> =C2=A0 > >> Oops, sorry, some details: > >> - one core run generator routine > >> - one core run routine to save/display statistic > >> =C2=A0 > >> core run a generator routine like: > >> =C2=A0 > >> while (1) { > >> get buffer from pool > >> make eth+ip+udp header (it's static content) > >> generate payload like memset(packet.payload , 'A' + something, payload= _size); > >> generate packet sequence and CRC32C =C2=A0- and add it to the payload = part > >> "send" packet to tx_buffer > >> =C2=A0 > >> if (tx_buffer.size =3D=3D tx_buffer.length) > >> do flush() > >> } > >> =C2=A0 > >> "header; part of the packet : sizeof(eth+ip+udp) - > >> "payload" part - 20-1024 octets =46rom your statistics I calculate 74 bytes per packet (Ethernet), i.e. the theoretical maximum for 10 Gbps is 12.25 Mpps, with packet budget of 81 ns per packet. https://calc.pktgen.com/#gbe=3D20&payload=3D40&rate=3D12250000&header=3D20 > >> RSS - it's on received side, yes ? Correct. I asked because it was unclear from the initial message whether you app does the receiving or not. P.S. Please avoid top-posting, i.e. reply below the quote.