2022-12-26 22:24 (UTC+0300), Ruslan R. Laishev:
> Sorry, right interface:
>
> Network devices using DPDK-compatible driver
> ============================================
> 0000:09:00.0 'Ethernet Connection X553 10 GbE SFP+ 15c4' drv=igb_uio
> unused=ixgbe,vfio-pci
>
>
> 26.12.2022, 22:21, "Ruslan R. Laishev" <[email protected]>:
> There is what i do at xmiter side, may be u will get a quantum to see a code
> of pupil: https://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 to
> > 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=txonly --tx-first
It will print statistics on exit ("exit" or Ctrl+C).
> > Some statistics (rte_eth_stats) :
> >
> > 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
> >
> > (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
> >
> > A piece of the DPDK-DEVBIND.SH
> > 0000:02:00.0 'I211 Gigabit Network Connection 1539' if=enp2s0 drv=igb
> > unused=igb_uio,vfio-pci *Active*
> >
> > 26.12.2022, 16:22, "Ruslan R. Laishev" <[email protected]>:
> > Thanks for the answer.
> >>
> >> Oops, sorry, some details:
> >> - one core run generator routine
> >> - one core run routine to save/display statistic
> >>
> >> core run a generator routine like:
> >>
> >> 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 - and add it to the payload part
> >> "send" packet to tx_buffer
> >>
> >> if (tx_buffer.size == tx_buffer.length)
> >> do flush()
> >> }
> >>
> >> "header; part of the packet : sizeof(eth+ip+udp) -
> >> "payload" part - 20-1024 octets
From 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=20&payload=40&rate=12250000&header=20
> >> 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.