[F/G/H/Unstable][F/oem-5.6][F/oem-5.10][SRU][PATCH 0/1] selftests: fix the return value for UDP GRO test

Po-Hsu Lin po-hsu.lin at canonical.com
Wed Jan 13 09:39:22 UTC 2021


[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.

Po-Hsu Lin (1):
  selftests: fix the return value for UDP GRO test

 tools/testing/selftests/net/udpgro.sh | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

-- 
2.7.4




More information about the kernel-team mailing list