udpgro.sh in net from ubuntu_kernel_selftests seems not reflecting sub-test result
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ubuntu-kernel-tests |
Fix Released
|
Undecided
|
Po-Hsu Lin | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
Po-Hsu Lin | ||
Focal |
Fix Released
|
Undecided
|
Po-Hsu Lin | ||
Groovy |
Fix Released
|
Undecided
|
Po-Hsu Lin | ||
Hirsute |
Fix Released
|
Undecided
|
Po-Hsu Lin | ||
linux-oem-5.10 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Po-Hsu Lin | ||
linux-oem-5.6 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Po-Hsu Lin |
Bug Description
[Impact]
In udpgro.sh, the exit value is 0 even if there are some failed sub
test cases:
$ sudo ./udpgro.sh
ipv4
no GRO
BTF debug data section '.BTF' rejected: Invalid argument (22)!
- Length: 568
Verifier analysis:
magic: 0xeb9f
version: 1
flags: 0x0
hdr_len: 24
type_off: 0
type_len: 256
str_off: 256
str_len: 288
btf_total_size: 568
[1] PTR (anon) type_id=2
[2] STRUCT xdp_md size=20 vlen=5
data type_id=3 bits_offset=0
data_end type_id=3 bits_offset=32
data_meta type_id=3 bits_offset=64
ingress_ifindex type_id=3 bits_offset=96
rx_queue_index type_id=3 bits_offset=128
[3] TYPEDEF __u32 type_id=4
[4] INT unsigned int size=4 bits_offset=0 nr_bits=32 encoding=(none)
[5] FUNC_PROTO (anon) return=6 args=(1 ctx)
[6] INT int size=4 bits_offset=0 nr_bits=32 encoding=SIGNED
[7] FUNC xdp_dummy_prog type_id=5
[8] INT char size=1 bits_offset=0 nr_bits=8 encoding=SIGNED
[9] ARRAY (anon) type_id=8 index_type_id=10 nr_elems=4
[10] INT __ARRAY_SIZE_TYPE__ size=4 bits_offset=0 nr_bits=32 encoding=(none)
[11] VAR _license type_id=9 linkage=1
[12] DATASEC license size=0 vlen=1 size == 0
./udpgso_bench_rx: poll: 0x0 expected 0x1
failed
./udpgso_bench_tx: write: Connection refused
...
multiple GRO socks
BTF debug data section '.BTF' rejected: Invalid argument (22)!
- Length: 568
Verifier analysis:
magic: 0xeb9f
version: 1
flags: 0x0
hdr_len: 24
type_off: 0
type_len: 256
str_off: 256
str_len: 288
btf_total_size: 568
[1] PTR (anon) type_id=2
[2] STRUCT xdp_md size=20 vlen=5
data type_id=3 bits_offset=0
data_end type_id=3 bits_offset=32
data_meta type_id=3 bits_offset=64
ingress_ifindex type_id=3 bits_offset=96
rx_queue_index type_id=3 bits_offset=128
[3] TYPEDEF __u32 type_id=4
[4] INT unsigned int size=4 bits_offset=0 nr_bits=32 encoding=(none)
[5] FUNC_PROTO (anon) return=6 args=(1 ctx)
[6] INT int size=4 bits_offset=0 nr_bits=32 encoding=SIGNED
[7] FUNC xdp_dummy_prog type_id=5
[8] INT char size=1 bits_offset=0 nr_bits=8 encoding=SIGNED
[9] ARRAY (anon) type_id=8 index_type_id=10 nr_elems=4
[10] INT __ARRAY_SIZE_TYPE__ size=4 bits_offset=0 nr_bits=32 encoding=(none)
[11] VAR _license type_id=9 linkage=1
[12] DATASEC license size=0 vlen=1 size == 0
./udpgso_bench_rx: poll: 0x0 expected 0x1
./udpgso_bench_rx: poll: 0x0 expected 0x1
failed
$ echo $?
0
[Fix]
* 3503ee6c0bec5f ("selftests: fix the return value for UDP GRO test")
We have this test since Focal.
This patch can be cherry-picked into all the affected kernels.
[Test]
Run this test with:
sudo ./udpgro.sh
And check its final return value with:
echo $?
If there is any failure, the return value should not be 0.
[Where problems could occur]
If this fix is incorrect it might affect the test execution, but it
should be fine as this is just affecting the test tool. Also, with
this patch, we are expecting to see this test case to fail until
bug 1908501 got fixed.
tags: | added: 5.6 focal oem sru-20201130 |
Changed in ubuntu-kernel-tests: | |
status: | New → In Progress |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
description: | updated |
description: | updated |
no longer affects: | linux-oem-5.10 (Ubuntu Groovy) |
no longer affects: | linux-oem-5.10 (Ubuntu Hirsute) |
no longer affects: | linux-oem-5.6 (Ubuntu Groovy) |
no longer affects: | linux-oem-5.6 (Ubuntu Hirsute) |
Changed in linux-oem-5.6 (Ubuntu): | |
status: | New → Invalid |
Changed in linux (Ubuntu Focal): | |
status: | New → In Progress |
Changed in linux (Ubuntu Groovy): | |
status: | New → In Progress |
Changed in linux (Ubuntu Hirsute): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
Changed in linux (Ubuntu Focal): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
Changed in linux (Ubuntu Groovy): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
description: | updated |
Changed in linux-oem-5.10 (Ubuntu): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
Changed in linux (Ubuntu Hirsute): | |
status: | New → In Progress |
Changed in linux-oem-5.10 (Ubuntu Focal): | |
status: | New → In Progress |
Changed in linux-oem-5.6 (Ubuntu Focal): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
status: | New → In Progress |
Changed in linux-oem-5.10 (Ubuntu Focal): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
Changed in linux-oem-5.10 (Ubuntu): | |
assignee: | Po-Hsu Lin (cypressyew) → nobody |
status: | New → Invalid |
description: | updated |
Changed in linux (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Groovy): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Hirsute): | |
status: | In Progress → Fix Committed |
Changed in linux-oem-5.10 (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
Changed in linux-oem-5.6 (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
Changed in ubuntu-kernel-tests: | |
status: | In Progress → Fix Released |
https:/ /lists. ubuntu. com/archives/ kernel- team/2021- January/ 116415. html