selftests/net: make so_txtime more robust to timer variance
authorWillem de Bruijn <willemb@google.com>
Thu, 12 Dec 2019 16:36:46 +0000 (11:36 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Feb 2020 07:36:36 +0000 (08:36 +0100)
commitcf03458ab2cf6ed2d168f6a94bff1a3a5a5bf212
treeb4415903367a8811c68b4cd10366ed63cb7092f4
parent687ef9c269b6629fadd5e794d7e88b5028387a4f
selftests/net: make so_txtime more robust to timer variance

[ Upstream commit ea6a547669b37453f2b1a5d85188d75b3613dfaa ]

The SO_TXTIME test depends on accurate timers. In some virtualized
environments the test has been reported to be flaky. This is easily
reproduced by disabling kvm acceleration in Qemu.

Allow greater variance in a run and retry to further reduce flakiness.

Observed errors are one of two kinds: either the packet arrives too
early or late at recv(), or it was dropped in the qdisc itself and the
recv() call times out.

In the latter case, the qdisc queues a notification to the error
queue of the send socket. Also explicitly report this cause.

Link: https://lore.kernel.org/netdev/CA+FuTSdYOnJCsGuj43xwV1jxvYsaoa_LzHQF9qMyhrkLrivxKw@mail.gmail.com
Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/testing/selftests/net/so_txtime.c
tools/testing/selftests/net/so_txtime.sh