Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> writes: > On 2024-02-15 21:23:23 [+0100], Toke Høiland-Jørgensen wrote: >> The tricky part is that the traffic actually has to stress the CPU, >> which means that the offered load has to be higher than what the CPU can >> handle. Which generally means running on high-speed NICs with small >> packets: a modern server CPU has no problem keeping up with a 10G link >> even at 64-byte packet size, so a 100G NIC is needed, or the test needs >> to be run on a low-powered machine. > > I have 10G box. I can tell cpufreq to go down to 1.1Ghz and I could > reduce the queues to one and hope that it is slow enough. Yeah, that may work. As long as the baseline performance is below the ~14Mpps that's 10G line rate for small packets. >> As a traffic generator, the xdp-trafficgen utility also in xdp-tools can >> be used, or the in-kernel pktgen, or something like T-rex or Moongen. >> Generally serving UDP traffic with 64-byte packets on a single port >> is enough to make sure the traffic is serviced by a single CPU, although >> some configuration may be needed to steer IRQs as well. > > I played with xdp-trafficgen: > | # xdp-trafficgen udp eno2 -v > | Current rlimit is infinity or 0. Not raising > | Kernel supports 5-arg xdp_cpumap_kthread tracepoint > | Error in ethtool ioctl: Operation not supported > | Got -95 queues for ifname lo > | Kernel supports 5-arg xdp_cpumap_kthread tracepoint > | Got 94 queues for ifname eno2 > | Transmitting on eno2 (ifindex 3) > | lo->eno2 0 err/s 0 xmit/s > | lo->eno2 0 err/s 0 xmit/s > | lo->eno2 0 err/s 0 xmit/s > > I even tried set the MAC address with -M/ -m but nothing happens. I see > and on drop side something happening when I issue a ping command. > Does something ring a bell? Otherwise I try the pktgen. This is a Debian > kernel (just to ensure I didn't break something or forgot a config > switch). Hmm, how old a kernel? And on what hardware? xdp-trafficgen requires a relatively new kernel, and the driver needs to support XDP_REDIRECT. It may be simpler to use pktgen, and at 10G rates that shouldn't become a bottleneck either. The pktgen_sample03_burst_single_flow.sh script in samples/pktgen in the kernel source tree is fine for this usage. -Toke