Skip to content

[Bug] --io-uring slower than TX_RING when testing on dummy interface #1074

Description

@fklassen

In branch 4.6.0 I tried running performance tests on dummy network and found --io-uring actually reduced performanc.

I speculate that io_uring has been implemented with parallel paths, which probably is causing extra context switching. I also speculate that that would cause reordering of packets, which is not desirable. Possibly moving to a single stream would fix both concerns

To Reproduce
Steps to reproduce the behavior:

sudo ip link add dummy0 type dummy
sudo ip link set dummy0 up
sudo tcpreplay -i dummy0 -l 1000 --io-uring --topspeed test/test.pcap 2> /dev/null
Actual: 179000 packets (69000000 bytes) sent in 0.472379 seconds
Rated: 146069152.1 Bps, 1168.55 Mbps, 378933.01 pps
Flows: 47 flows, 99.49 fps, 176000 unique flow packets, 2000 unique non-flow packets
Statistics for network device: dummy0
	Successful packets:        179000
	Failed packets:            0
	Truncated packets:         0
	Retried packets (ENOBUFS): 0
	Retried packets (EAGAIN):  0

Expected behavior

I would expect --io-uring to be faster, instead its slower. Here is the same machine without --io-uring

sudo tcpreplay -i dummy0 -l 1000 --topspeed test/test.pcap 2> /dev/null
Actual: 179000 packets (69000000 bytes) sent in 0.135882 seconds
Rated: 507793526.7 Bps, 4062.34 Mbps, 1317319.43 pps
Flows: 47 flows, 345.88 fps, 176000 unique flow packets, 2000 unique non-flow packets
Statistics for network device: dummy0
	Successful packets:        179000
	Failed packets:            0
	Truncated packets:         0
	Retried packets (ENOBUFS): 0
	Retried packets (EAGAIN):  0

System (please complete the following information):

  • Linux Debian 13 (trixie)
  • Tcpreplay Version 4.6.0-beta3

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugperformancePerformance regressions and optimization work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions