Message ID | 20241217185203.297935-1-sohamch.kernel@gmail.com |
---|---|
Headers | show |
Series | selftests/net: packetdrill: import multiple tests | expand |
On 12/18/24 19:00, Jakub Kicinski wrote: > On Tue, 17 Dec 2024 18:51:57 +0000 Soham Chakradeo wrote: >> Import tests for the following features (folder names in brackets): >> ECN (ecn) : RFC 3168 >> Close (close) : RFC 9293 >> TCP_INFO (tcp_info) : RFC 9293 >> Fast recovery (fast_recovery) : RFC 5681 >> Timestamping (timestamping) : RFC 1323 >> Nagle (nagle) : RFC 896 >> Selective Acknowledgments (sack) : RFC 2018 >> Recent Timestamp (ts_recent) : RFC 1323 >> Send file (sendfile) >> Syscall bad arg (syscall_bad_arg) >> Validate (validate) >> Blocking (blocking) >> Splice (splice) >> End of record (eor) >> Limited transmit (limited_transmit) > > Excellent, thanks for adding all these! I will merge the patches > momentarily but I do see a number of flakes on our VMs with debug > configs enabled: > https://netdev.bots.linux.dev/flakes.html?min-flip=0&tn-needle=packetdrill-dbg > > In the 7 runs so far we got 2 flakes on: > > tcp-timestamping-client-only-last-byte-pkt Quickly skimming over this one, it looks like it does not account for the increased default 'tolerance_us'. Kernel packetdrill set it by default to 14K (instead of 10K IIRC). I guess this statement: // SCM_TSTAMP_SCHED for the last byte should be received almost immediately // once 10001 is acked at t=20ms. the the follow-up check should be updated accordingly. In the failures observed so far the max timestamp is > 35ms. Cheers, Paolo
Paolo Abeni wrote: > On 12/18/24 19:00, Jakub Kicinski wrote: > > On Tue, 17 Dec 2024 18:51:57 +0000 Soham Chakradeo wrote: > >> Import tests for the following features (folder names in brackets): > >> ECN (ecn) : RFC 3168 > >> Close (close) : RFC 9293 > >> TCP_INFO (tcp_info) : RFC 9293 > >> Fast recovery (fast_recovery) : RFC 5681 > >> Timestamping (timestamping) : RFC 1323 > >> Nagle (nagle) : RFC 896 > >> Selective Acknowledgments (sack) : RFC 2018 > >> Recent Timestamp (ts_recent) : RFC 1323 > >> Send file (sendfile) > >> Syscall bad arg (syscall_bad_arg) > >> Validate (validate) > >> Blocking (blocking) > >> Splice (splice) > >> End of record (eor) > >> Limited transmit (limited_transmit) > > > > Excellent, thanks for adding all these! I will merge the patches > > momentarily but I do see a number of flakes on our VMs with debug > > configs enabled: > > https://netdev.bots.linux.dev/flakes.html?min-flip=0&tn-needle=packetdrill-dbg > > > > In the 7 runs so far we got 2 flakes on: > > > > tcp-timestamping-client-only-last-byte-pkt > > Quickly skimming over this one, it looks like it does not account for > the increased default 'tolerance_us'. Kernel packetdrill set it by > default to 14K (instead of 10K IIRC). > > I guess this statement: > > // SCM_TSTAMP_SCHED for the last byte should be received almost immediately > // once 10001 is acked at t=20ms. > > the the follow-up check should be updated accordingly. In the failures > observed so far the max timestamp is > 35ms. Thanks Paolo. All three timestamping flakes are instances where the script expects the timestamp to be taken essentially instantaneously after the send call. This is not the case, and the delay is outside even the 14K tolerance. I see occurrences of 20K. At some point we cannot keep increasing the tolerance, perhaps.
On Thu, 19 Dec 2024 14:31:44 -0500 Willem de Bruijn wrote: > All three timestamping flakes are instances where the script expects > the timestamp to be taken essentially instantaneously after the send > call. > > This is not the case, and the delay is outside even the 14K tolerance. > I see occurrences of 20K. At some point we cannot keep increasing the > tolerance, perhaps. I pinned the other services away and gave the packetdrill tester its own cores. Let's see how much of a difference this makes. The net-next-2024-12-20--03-00 branch will be the first to have this.
Jakub Kicinski wrote: > On Sun, 22 Dec 2024 22:46:26 -0500 Willem de Bruijn wrote: > > Jakub Kicinski wrote: > > > On Thu, 19 Dec 2024 14:31:44 -0500 Willem de Bruijn wrote: > > > > All three timestamping flakes are instances where the script expects > > > > the timestamp to be taken essentially instantaneously after the send > > > > call. > > > > > > > > This is not the case, and the delay is outside even the 14K tolerance. > > > > I see occurrences of 20K. At some point we cannot keep increasing the > > > > tolerance, perhaps. > > > > > > I pinned the other services away and gave the packetdrill tester its > > > own cores. Let's see how much of a difference this makes. > > > The net-next-2024-12-20--03-00 branch will be the first to have this. > > > > Thanks. It does not seem to resolve the flakes. > > > > At this point I think the best path is to run them in debug mode to > > get coverage, but ignore errors. With the below draft patch, error > > output is still logged. For instance: > > > > # tcp_timestamping_partial.pkt:58: runtime error in recvmsg call: Bad timestamp 0 in scm_timestamping 0: expected=1734924748967958 (20000) actual=1734924748982069 (34111) start=1734924748947958 > > # ok 2 ipv6 # SKIP > > Makes sense. Can we make this XFAIL instead of SKIP, tho? > Not exactly accurate but we try to use SKIP for reporting env / setup > problems like missing commands. We have FAIL_TO_XFAIL and > xfail_on_slow() in the lib for netdev bash tests, already. Sounds good. I'll add a ktap_test_xfail() to stay with that API. I see no clean way to make use of xfail_on_slow directly. When net-next reopens, unless the noisy dash is annoying.