mbox series

[net-next,v2,0/7] selftests/net: Mixed select()+polling mode for TCP-AO tests

Message ID 20250319-tcp-ao-selftests-polling-v2-0-da48040153d1@gmail.com
Headers show
Series selftests/net: Mixed select()+polling mode for TCP-AO tests | expand

Message

Dmitry Safonov via B4 Relay March 19, 2025, 3:13 a.m. UTC
Should fix flaky tcp-ao/connect-deny-ipv6 test.
Begging pardon for the delay since the report and for sending it this
late in the release cycle.

To: David S. Miller <davem@davemloft.net>
To: Eric Dumazet <edumazet@google.com>
To: Jakub Kicinski <kuba@kernel.org>
To: Paolo Abeni <pabeni@redhat.com>
To: Simon Horman <horms@kernel.org>
To: Shuah Khan <shuah@kernel.org>
Cc: netdev@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Dmitry Safonov <0x7f454c46@gmail.com>

Changes in v2:
- Base on net-next (Paolo)
- Add a missing Fixes tag (Paolo)
- Link to v1: https://lore.kernel.org/r/20250312-tcp-ao-selftests-polling-v1-0-72a642b855d5@gmail.com

---
Dmitry Safonov (7):
      selftests/net: Print TCP flags in more common format
      selftests/net: Provide tcp-ao counters comparison helper
      selftests/net: Fetch and check TCP-MD5 counters
      selftests/net: Add mixed select()+polling mode to TCP-AO tests
      selftests/net: Print the testing side in unsigned-md5
      selftests/net: Delete timeout from test_connect_socket()
      selftests/net: Drop timeout argument from test_client_verify()

 tools/testing/selftests/net/tcp_ao/connect-deny.c  |  58 ++--
 tools/testing/selftests/net/tcp_ao/connect.c       |  22 +-
 tools/testing/selftests/net/tcp_ao/icmps-discard.c |  17 +-
 .../testing/selftests/net/tcp_ao/key-management.c  |  76 ++---
 tools/testing/selftests/net/tcp_ao/lib/aolib.h     | 114 ++++++--
 .../testing/selftests/net/tcp_ao/lib/ftrace-tcp.c  |   7 +-
 tools/testing/selftests/net/tcp_ao/lib/sock.c      | 315 +++++++++++++++------
 tools/testing/selftests/net/tcp_ao/restore.c       |  75 +++--
 tools/testing/selftests/net/tcp_ao/rst.c           |  47 ++-
 tools/testing/selftests/net/tcp_ao/self-connect.c  |  18 +-
 tools/testing/selftests/net/tcp_ao/seq-ext.c       |  30 +-
 tools/testing/selftests/net/tcp_ao/unsigned-md5.c  | 118 ++++----
 12 files changed, 552 insertions(+), 345 deletions(-)
---
base-commit: 23c9ff659140f97d44bf6fb59f89526a168f2b86
change-id: 20250312-tcp-ao-selftests-polling-21b6bbdf77b6

Best regards,

Comments

Jakub Kicinski March 25, 2025, 1:15 p.m. UTC | #1
On Wed, 19 Mar 2025 03:13:33 +0000 Dmitry Safonov via B4 Relay wrote:
> Should fix flaky tcp-ao/connect-deny-ipv6 test.
> Begging pardon for the delay since the report and for sending it this
> late in the release cycle.

Better late than never, thanks a lot! :)
patchwork-bot+netdevbpf@kernel.org March 25, 2025, 1:20 p.m. UTC | #2
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Wed, 19 Mar 2025 03:13:33 +0000 you wrote:
> Should fix flaky tcp-ao/connect-deny-ipv6 test.
> Begging pardon for the delay since the report and for sending it this
> late in the release cycle.
> 
> To: David S. Miller <davem@davemloft.net>
> To: Eric Dumazet <edumazet@google.com>
> To: Jakub Kicinski <kuba@kernel.org>
> To: Paolo Abeni <pabeni@redhat.com>
> To: Simon Horman <horms@kernel.org>
> To: Shuah Khan <shuah@kernel.org>
> Cc: netdev@vger.kernel.org
> Cc: linux-kselftest@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Dmitry Safonov <0x7f454c46@gmail.com>
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/7] selftests/net: Print TCP flags in more common format
    https://git.kernel.org/netdev/net-next/c/65ffdf31be68
  - [net-next,v2,2/7] selftests/net: Provide tcp-ao counters comparison helper
    https://git.kernel.org/netdev/net-next/c/1fe4221093d1
  - [net-next,v2,3/7] selftests/net: Fetch and check TCP-MD5 counters
    https://git.kernel.org/netdev/net-next/c/5a0a3193f6c4
  - [net-next,v2,4/7] selftests/net: Add mixed select()+polling mode to TCP-AO tests
    https://git.kernel.org/netdev/net-next/c/3f36781e57b3
  - [net-next,v2,5/7] selftests/net: Print the testing side in unsigned-md5
    https://git.kernel.org/netdev/net-next/c/266ed1ace8ee
  - [net-next,v2,6/7] selftests/net: Delete timeout from test_connect_socket()
    https://git.kernel.org/netdev/net-next/c/1e1738faa2bb
  - [net-next,v2,7/7] selftests/net: Drop timeout argument from test_client_verify()
    https://git.kernel.org/netdev/net-next/c/edbac739e4d1

You are awesome, thank you!
Dmitry Safonov March 26, 2025, 7:48 p.m. UTC | #3
On Tue, 25 Mar 2025 at 13:15, Jakub Kicinski <kuba@kernel.org> wrote:
>
> On Wed, 19 Mar 2025 03:13:33 +0000 Dmitry Safonov via B4 Relay wrote:
> > Should fix flaky tcp-ao/connect-deny-ipv6 test.
> > Begging pardon for the delay since the report and for sending it this
> > late in the release cycle.
>
> Better late than never, thanks a lot! :)

Thank you, Jakub!

I also noticed that recently, self-connect-ipv6 became slightly flaky:
https://netdev.bots.linux.dev/flakes.html?br-cnt=75&tn-needle=tcp-ao

Seems unrelated to select()+poll selftests changes, but rather to
timings in the kernel:
# # 1249[lib/proc.c:213]    Snmp6            Ip6OutNoRoutes: 0 => 1

It seems that the test relied on kernel adding a link-local route with
a loopback interface, but probably adding the interface got faster.
Seems like a trivial two-line fix by manually adding the link-local
route in userspace. Though, can't reproduce that flake locally on
thousands of runs.

Should I send the potential fix now for -net or wait until the merge
window closes and send for -net-next?

Thanks,
             Dmitry
Jakub Kicinski March 26, 2025, 8 p.m. UTC | #4
On Wed, 26 Mar 2025 19:48:16 +0000 Dmitry Safonov wrote:
> On Tue, 25 Mar 2025 at 13:15, Jakub Kicinski <kuba@kernel.org> wrote:
> >
> > On Wed, 19 Mar 2025 03:13:33 +0000 Dmitry Safonov via B4 Relay wrote:  
> > > Should fix flaky tcp-ao/connect-deny-ipv6 test.
> > > Begging pardon for the delay since the report and for sending it this
> > > late in the release cycle.  
> >
> > Better late than never, thanks a lot! :)  
> 
> Thank you, Jakub!
> 
> I also noticed that recently, self-connect-ipv6 became slightly flaky:
> https://netdev.bots.linux.dev/flakes.html?br-cnt=75&tn-needle=tcp-ao
> 
> Seems unrelated to select()+poll selftests changes, but rather to
> timings in the kernel:
> # # 1249[lib/proc.c:213]    Snmp6            Ip6OutNoRoutes: 0 => 1
> 
> It seems that the test relied on kernel adding a link-local route with
> a loopback interface, but probably adding the interface got faster.
> Seems like a trivial two-line fix by manually adding the link-local
> route in userspace. Though, can't reproduce that flake locally on
> thousands of runs.
> 
> Should I send the potential fix now for -net or wait until the merge
> window closes and send for -net-next?

I reckon you can send it now, maybe other maintainers will disagree
but to me test stability fixes should be okay during the MW.
You can tag it as net-next for the benefit of the build bot, 
tho we'll end up merging it to net once/if Linus pulls.
Dmitry Safonov March 26, 2025, 9:41 p.m. UTC | #5
On Wed, 26 Mar 2025 at 20:00, Jakub Kicinski <kuba@kernel.org> wrote:
>
> On Wed, 26 Mar 2025 19:48:16 +0000 Dmitry Safonov wrote:
> > Should I send the potential fix now for -net or wait until the merge
> > window closes and send for -net-next?
>
> I reckon you can send it now, maybe other maintainers will disagree
> but to me test stability fixes should be okay during the MW.
> You can tag it as net-next for the benefit of the build bot,
> tho we'll end up merging it to net once/if Linus pulls.

Thanks! Will do!

Thanks
             Dmitry