<div>Thanks a lot for suggestions.  I'll check it tomorrow.</div><div> </div><div>26.12.2022, 23:04, "Dmitry Kozlyuk" <dmitry.kozliuk@gmail.com>:</div><blockquote><p>2022-12-26 22:24 (UTC+0300), Ruslan R. Laishev:</p><blockquote> Sorry, right interface:<br />  <br /> Network devices using DPDK-compatible driver<br /> ============================================<br /> 0000:09:00.0 'Ethernet Connection X553 10 GbE SFP+ 15c4' drv=igb_uio unused=ixgbe,vfio-pci<br />  <br />  <br /> 26.12.2022, 22:21, "Ruslan R. Laishev" <<a href="mailto:zator@yandex.ru" rel="noopener noreferrer">zator@yandex.ru</a>>:<br /> There is what i do at xmiter side, may be u will get a quantum to see a code of pupil:  <a href="https://pastebin.com/1WMyXtr5" rel="noopener noreferrer">https://pastebin.com/1WMyXtr5</a></blockquote><p><br />I see nothing terribly wrong there.<br />If you run it on more then one core each using a distinct Tx queue,<br />do you see a performance increase?<br /><br />You might want to remove the shared atomic counter;<br />use simple per-lcore counters and sum them for display.<br />Also, if "g_nqueue" is not const, "%" should not be used on the data path.<br /> </p><blockquote> > I spent some time with the testpmd, sorry but there is not an ability to get rate information on sending, may be i'll add it into the code ...</blockquote><p><br />Run testpmd as follows to make it transmit packets<br />(add DPDK options before "--" as needed):<br /><br />dpdk-testpmd -- --forward-mode=txonly --tx-first<br /><br />It will print statistics on exit ("exit" or Ctrl+C).<br /> </p><blockquote> > Some statistics (rte_eth_stats)  :<br /> >  <br /> > Date;Time;Device;Port;Name;Area;In pkts;Out pkts;In bytes;Out bytes;In missed;In errors;Out errors;No mbufs;<br /> > (payload is 0 octets)<br /> > 26-12-2022; 22:14:10; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 21122753; 0; 1563085750; 0; 0; 0; 0<br /> > 26-12-2022; 22:14:20; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 21122392; 0; 1563057008; 0; 0; 0; 0<br /> > 26-12-2022; 22:14:30; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 21121978; 0; 1563024500; 0; 0; 0; 0<br /> > 26-12-2022; 22:14:40; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 21122012; 0; 1563028888; 0; 0; 0; 0<br /> >  <br /> > (payload is 1024 octets)<br /> > 26-12-2022; 22:15:20; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 5246799; 0; 4648659464; 0; 0; 0; 0<br /> > 26-12-2022; 22:15:30; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 5246456; 0; 4648360016; 0; 0; 0; 0<br /> > 26-12-2022; 22:15:40; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 5246168; 0; 4648108408; 0; 0; 0; 0<br /> > 26-12-2022; 22:15:50; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 5246143; 0; 4648084478; 0; 0; 0; 0<br /> > 26-12-2022; 22:16:00; 0000:09:00.0; _PEA00:; WAN0; WAN; 0; 5246129; 0; 4648070294; 0; 0; 0; 0<br /> >  <br /> > A piece of the DPDK-DEVBIND.SH<br /> > 0000:02:00.0 'I211 Gigabit Network Connection 1539' if=enp2s0 drv=igb unused=igb_uio,vfio-pci *Active*<br /> >  <br /> > 26.12.2022, 16:22, "Ruslan R. Laishev" <<a href="mailto:zator@yandex.ru" rel="noopener noreferrer">zator@yandex.ru</a>>:<br /> > Thanks for the answer.<br /> >>  <br /> >> Oops, sorry, some details:<br /> >> - one core run generator routine<br /> >> - one core run routine to save/display statistic<br /> >>  <br /> >> core run a generator routine like:<br /> >>  <br /> >> while (1) {<!-- --><br /> >> get buffer from pool<br /> >> make eth+ip+udp header (it's static content)<br /> >> generate payload like memset(packet.payload , 'A' + something, payload_size);<br /> >> generate packet sequence and CRC32C  - and add it to the payload part<br /> >> "send" packet to tx_buffer<br /> >>  <br /> >> if (tx_buffer.size == tx_buffer.length)<br /> >> do flush()<br /> >> }<br /> >>  <br /> >> "header; part of the packet : sizeof(eth+ip+udp) -<br /> >> "payload" part - 20-1024 octets</blockquote><p><br />From your statistics I calculate 74 bytes per packet (Ethernet),<br />i.e. the theoretical maximum for 10 Gbps is 12.25 Mpps,<br />with packet budget of 81 ns per packet.<br /><br /><a href="https://calc.pktgen.com/#gbe=20&payload=40&rate=12250000&header=20" rel="noopener noreferrer">https://calc.pktgen.com/#gbe=20&payload=40&rate=12250000&header=20</a><br /> </p><blockquote> >> RSS - it's on received side, yes ?</blockquote><p><br />Correct.<br />I asked because it was unclear from the initial message<br />whether you app does the receiving or not.<br /><br />P.S. Please avoid top-posting, i.e. reply below the quote.</p></blockquote><div> </div><div> </div><div><span style="font-family:'georgia' , 'palatino'">--- </span></div><div><span style="font-family:'georgia' , 'palatino'">С уважением,<br />Ruslan R. Laishev</span></div><div><span style="font-family:'georgia' , 'palatino'">OpenVMS bigot, natural born system/network progger, C contractor.</span></div><div><span style="font-family:'georgia' , 'palatino'">+79013163222</span></div><div><span style="font-family:'georgia' , 'palatino'">+79910009922</span></div><div> </div>