Hi everyone,
I have observed that Leap 15.2 kernels 5.3.18-lp152.72.1 onwards frequently deliver UDP packets out of order.
The current Leap 15.3 kernel 5.3.18-59.19 has the same issue, but older Leap 15.3 kernel 5.3.18-57.3 from http://download.opensuse.org/distribution/leap/15.3/repo/oss/ is ok.
The issue is 100% reproducable on Haswell hardware - for example an Intel(R) Core™ i3-4130 CPU @ 3.40GHz machine, and on Broadwell - for example an intel NUC with an Intel(R) Core™ i5-5300U CPU @ 2.30GHz.
I know UDP makes no guarantee of packet delivery order, but previous kernels always seemed to deliver packets in order. Later kernels seem to suffer from excessive out-of-order packet delivery.
Did something change in kernel 5.3.18-lp152.72.1 that would affect this?
We noticed this affecting video streaming, but it is easily reproducable using iperf.
Steps to Reproduce:
- Run an iperf server on the Haswell box.
iperf3 -s
- Now run a set of 10 tests, asking a remote client to receive 300Mbit blocks of UDP data.
for iter in 0 1 2 3 4 5 6 7 8 9; do echo "iter: $iter"; iperf3 -c 192.168.1.10 -u -b 300M -R | grep "datagrams received out-of-order"; done
Using kernel 5.3.18-lp152.60 I see no out-of-order datagrams.
Using kernel 5.3.18-lp152.87 I see > 10k out-of-order datagrams on each run.
I created a bugzilla ticket for this a while back. Is anyone able to direct me to the maintainers best placed to investigate this?
Thanks,
Simon