net selftest psock_fanout fails on xenial s390x due to incorrect queue lengths
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ubuntu-kernel-tests |
Fix Released
|
Undecided
|
Po-Hsu Lin | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Xenial |
Fix Released
|
Medium
|
Po-Hsu Lin | ||
Bionic |
Fix Released
|
Medium
|
Po-Hsu Lin |
Bug Description
== SRU Justification ==
The psock_fanout test is not very stable, stress tests shows a high
fail rate here:
* X - 44 failures out of 100, with 4.4 kernel on a KVM node
* B - 33 failures out of 100, with 4.15 kernel on a KVM node
This is because of the unrelated background traffic which should be
filtered out.
Also, the error message, "ERROR: incorrect queue lengths", is a bit
misleading. You can see this even the test has passed, it's not the
real cause of the failure. This message has been changed to "warning: incorrect queue lengths" later.
== Fix ==
1. 2e7a7217 (selftests/net: cleanup unused parameter in psock_fanout)
2. cc30c93f (selftests/net: ignore background traffic in psock_fanout)
The first patch has already landed in Bionic, and it can be
cherry-picked into Xenial.
The second one needs to be backported to Xenial, but it can be applied
to Bionic with git am -C2.
== Test ==
Patch tested directly on 4.4 / 4.15 KVM nodes.
Stress tested 100 times with:
i=0
for idx in $(seq 1 100)
do
sudo ./psock_fanout &> /dev/null
[ $? != 0 ] && i=$((i+1))
done
echo $i
All tests have passed without any failure.
== Regression Potential ==
Low, change limited to testing tools, not affecting actual kernel
functionality.
== Original Bug Report ==
s390x: https:/
Here's the relevant excerpt:
17:34:26 DEBUG| [stdout] -------
17:34:26 DEBUG| [stdout] running psock_fanout test
17:34:26 DEBUG| [stdout] -------
17:34:26 ERROR| [stderr] test: control single socket
17:34:27 ERROR| [stderr] test: control multiple sockets
17:34:27 ERROR| [stderr] test: datapath 0x0
17:34:27 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:27 ERROR| [stderr] info: count=20,0, expect=15,5
17:34:27 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:27 ERROR| [stderr] info: count=20,0, expect=20,5
17:34:27 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:27 ERROR| [stderr] info: trying alternate ports (4)
17:34:27 ERROR| [stderr] test: datapath 0x0
17:34:27 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:27 ERROR| [stderr] info: count=20,0, expect=15,5
17:34:27 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:27 ERROR| [stderr] info: count=20,0, expect=20,5
17:34:27 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:27 ERROR| [stderr] info: trying alternate ports (3)
17:34:27 ERROR| [stderr] test: datapath 0x0
17:34:27 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:27 ERROR| [stderr] info: count=20,0, expect=15,5
17:34:27 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:27 ERROR| [stderr] info: count=20,0, expect=20,5
17:34:27 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:27 ERROR| [stderr] info: trying alternate ports (2)
17:34:27 ERROR| [stderr] test: datapath 0x0
17:34:27 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:27 ERROR| [stderr] info: count=20,0, expect=15,5
17:34:27 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:27 ERROR| [stderr] info: count=20,0, expect=20,5
17:34:27 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:27 ERROR| [stderr] info: trying alternate ports (1)
17:34:27 ERROR| [stderr] test: datapath 0x0
17:34:28 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:28 ERROR| [stderr] info: count=20,0, expect=15,5
17:34:28 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:28 ERROR| [stderr] info: count=20,0, expect=20,5
17:34:28 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:28 ERROR| [stderr] info: trying alternate ports (0)
17:34:28 ERROR| [stderr] test: datapath 0x0
17:34:28 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:28 ERROR| [stderr] info: count=20,0, expect=15,5
17:34:28 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:28 ERROR| [stderr] info: count=20,0, expect=20,5
17:34:28 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:28 ERROR| [stderr] test: datapath 0x1000
17:34:28 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:28 ERROR| [stderr] info: count=20,0, expect=15,5
17:34:28 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:28 ERROR| [stderr] info: count=20,0, expect=15,5
17:34:28 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:28 ERROR| [stderr] info: count=20,0, expect=20,5
17:34:28 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:28 ERROR| [stderr] info: trying alternate ports (0)
17:34:28 ERROR| [stderr] test: datapath 0x0
17:34:28 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:28 ERROR| [stderr] info: count=20,0, expect=15,5
17:34:28 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:28 ERROR| [stderr] info: count=20,0, expect=20,5
17:34:28 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:28 ERROR| [stderr] test: datapath 0x1000
17:34:28 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:28 ERROR| [stderr] info: count=20,0, expect=15,5
17:34:28 ERROR| [stderr] ERROR: incorrect queue lengths
17:34:28 ERROR| [stderr] info: count=20,15, expect=20,15
17:34:28 ERROR| [stderr] test: datapath 0x1
17:34:28 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:28 ERROR| [stderr] info: count=10,10, expect=10,10
17:34:28 ERROR| [stderr] info: count=18,17, expect=18,17
17:34:28 ERROR| [stderr] test: datapath 0x3
17:34:28 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:28 ERROR| [stderr] info: count=15,5, expect=15,5
17:34:28 ERROR| [stderr] info: count=20,15, expect=20,15
17:34:28 ERROR| [stderr] test: datapath 0x6
17:34:29 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:29 ERROR| [stderr] info: count=5,15, expect=15,5
17:34:29 ERROR| [stderr] info: count=20,15, expect=15,20
17:34:29 ERROR| [stderr] test: datapath 0x7
17:34:29 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:29 ERROR| [stderr] info: count=5,15, expect=15,5
17:34:29 ERROR| [stderr] info: count=20,15, expect=15,20
17:34:29 ERROR| [stderr] test: datapath 0x2
17:34:29 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:29 ERROR| [stderr] info: count=20,0, expect=20,0
17:34:29 ERROR| [stderr] info: count=20,0, expect=20,0
17:34:29 ERROR| [stderr] test: datapath 0x2
17:34:29 ERROR| [stderr] info: count=0,0, expect=0,0
17:34:29 ERROR| [stderr] info: count=0,20, expect=0,20
17:34:29 ERROR| [stderr] info: count=0,20, expect=0,20
17:34:29 DEBUG| [stdout] [FAIL]
CVE References
tags: | added: s390x ubuntu-kernel-selftests xenial |
Changed in linux (Ubuntu Bionic): | |
status: | Incomplete → In Progress |
Changed in linux (Ubuntu): | |
status: | Incomplete → Fix Released |
assignee: | Po-Hsu Lin (cypressyew) → nobody |
description: | updated |
description: | updated |
description: | updated |
Changed in linux (Ubuntu Xenial): | |
importance: | Undecided → Medium |
Changed in linux (Ubuntu Bionic): | |
importance: | Undecided → Medium |
Changed in linux (Ubuntu Xenial): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Bionic): | |
status: | In Progress → Fix Committed |
This issue can be found on Bionic s390x/amd64 as well:
Test report on s390x zVM (kernel02): ======= ======= ======= ======= ===== ------- ------ ------- ------
selftests: run_afpackettests
=======
-------
running psock_fanout test
-------
test: control single socket
test: control multiple sockets
test: unique ids
test: datapath 0x0
info: count=0,0, expect=0,0
info: count=20,0, expect=15,5
ERROR: incorrect queue lengths
info: count=20,0, expect=20,5
ERROR: incorrect queue lengths
info: trying alternate ports (4)
test: datapath 0x0
info: count=0,0, expect=0,0
info: count=20,0, expect=15,5
ERROR: incorrect queue lengths
info: count=20,0, expect=20,5
ERROR: incorrect queue lengths
info: trying alternate ports (3)
test: datapath 0x0
info: count=0,0, expect=0,0
info: count=15,5, expect=15,5
info: count=20,5, expect=20,5
test: datapath 0x1000
info: count=0,0, expect=0,0
info: count=15,5, expect=15,5
info: count=20,15, expect=20,15
test: datapath 0x1
info: count=0,0, expect=0,0
info: count=10,10, expect=10,10
info: count=18,17, expect=18,17
test: datapath 0x3
info: count=0,0, expect=0,0
info: count=15,5, expect=15,5
info: count=20,15, expect=20,15
test: datapath 0x6
info: count=0,0, expect=0,0
info: count=5,15, expect=15,5
info: count=20,15, expect=15,20
test: datapath 0x7
info: count=0,0, expect=0,0
info: count=5,15, expect=15,5
info: count=20,15, expect=15,20
test: datapath 0x2
info: count=0,0, expect=0,0
info: count=20,0, expect=20,0
info: count=20,0, expect=20,0
test: datapath 0x2
info: count=0,0, expect=0,0
info: count=0,20, expect=0,20
info: count=0,20, expect=0,20
test: datapath 0x2000
info: count=0,0, expect=0,0
info: count=20,20, expect=20,20
info: count=20,20, expect=20,20