Message ID | 20230125211350.113855-1-andrei.gherzan@canonical.com |
---|---|
State | Superseded |
Headers | show |
Series | [v2,1/2] selftests: net: Fix missing nat6to4.o when running udpgro_frglist.sh | expand |
On Wed, 25 Jan 2023 21:13:49 +0000 Andrei Gherzan wrote: > The udpgro_frglist.sh uses nat6to4.o which is tested for existence in > bpf/nat6to4.o (relative to the script). This is where the object is > compiled. Even so, the script attempts to use it as part of tc with a > different path (../bpf/nat6to4.o). As a consequence, this fails the script: Is this a recent regression? Can you add a Fixes tag? What tree did you base this patch on? Doesn't seem to apply > Error opening object ../bpf/nat6to4.o: No such file or directory > Cannot initialize ELF context! > Unable to load program > > This change refactors these references to use a variable for consistency > and also reformats two long lines. > > Signed-off-by: Andrei Gherzan <andrei.gherzan@canonical.com>
Hi Jakub, Thanks for taking a look at this. On 23/01/25 11:08PM, Jakub Kicinski wrote: > On Wed, 25 Jan 2023 21:13:49 +0000 Andrei Gherzan wrote: > > The udpgro_frglist.sh uses nat6to4.o which is tested for existence in > > bpf/nat6to4.o (relative to the script). This is where the object is > > compiled. Even so, the script attempts to use it as part of tc with a > > different path (../bpf/nat6to4.o). As a consequence, this fails the script: > > Is this a recent regression? Can you add a Fixes tag? This issue seems to be included from the beginning (edae34a3ed92). I can't say why this was not seen before upstream but on our side, this test was disabled internally due to lack of CC support in BPF programs. This was fixed in the meanwhile in 837a3d66d698 (selftests: net: Add cross-compilation support for BPF programs) and we found this issue while trying to reenable the test. So if you think that is reasonable, I could add a Fixes tag for the initial script commit edae34a3ed92 (selftests net: add UDP GRO fraglist + bpf self-tests) and push a v3. > What tree did you base this patch on? Doesn't seem to apply The patches were done on top of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git, the master branch - 948ef7bb70c4 (Merge tag 'modules-6.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux). There is another merge that happened in the meanwhile but the rebase works without issues. I can send a rebased v3 if needed. > > > Error opening object ../bpf/nat6to4.o: No such file or directory > > Cannot initialize ELF context! > > Unable to load program > > > > This change refactors these references to use a variable for consistency > > and also reformats two long lines. > > > > Signed-off-by: Andrei Gherzan <andrei.gherzan@canonical.com>
On Thu, 26 Jan 2023 10:01:44 +0000 Andrei Gherzan wrote: > On 23/01/25 11:08PM, Jakub Kicinski wrote: > > On Wed, 25 Jan 2023 21:13:49 +0000 Andrei Gherzan wrote: > > > The udpgro_frglist.sh uses nat6to4.o which is tested for existence in > > > bpf/nat6to4.o (relative to the script). This is where the object is > > > compiled. Even so, the script attempts to use it as part of tc with a > > > different path (../bpf/nat6to4.o). As a consequence, this fails the script: > > > > Is this a recent regression? Can you add a Fixes tag? > > This issue seems to be included from the beginning (edae34a3ed92). I can't say > why this was not seen before upstream but on our side, this test was disabled > internally due to lack of CC support in BPF programs. This was fixed in the > meanwhile in 837a3d66d698 (selftests: net: Add cross-compilation support for > BPF programs) and we found this issue while trying to reenable the test. > > So if you think that is reasonable, I could add a Fixes tag for the initial > script commit edae34a3ed92 (selftests net: add UDP GRO fraglist + bpf > self-tests) and push a v3. We have queued commit 3c107f36db06 ("selftests/net: mv bpf/nat6to4.c to net folder") in net-next, I think that should fix it, too? > > What tree did you base this patch on? Doesn't seem to apply > > The patches were done on top of > git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git, the master > branch - 948ef7bb70c4 (Merge tag 'modules-6.2-rc6' of > git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux). There is another > merge that happened in the meanwhile but the rebase works without issues. I can > send a rebased v3 if needed. Could you try linux-next or net-next ?
On 23/01/26 03:36PM, Jakub Kicinski wrote: > On Thu, 26 Jan 2023 10:01:44 +0000 Andrei Gherzan wrote: > > On 23/01/25 11:08PM, Jakub Kicinski wrote: > > > On Wed, 25 Jan 2023 21:13:49 +0000 Andrei Gherzan wrote: > > > > The udpgro_frglist.sh uses nat6to4.o which is tested for existence in > > > > bpf/nat6to4.o (relative to the script). This is where the object is > > > > compiled. Even so, the script attempts to use it as part of tc with a > > > > different path (../bpf/nat6to4.o). As a consequence, this fails the script: > > > > > > Is this a recent regression? Can you add a Fixes tag? > > > > This issue seems to be included from the beginning (edae34a3ed92). I can't say > > why this was not seen before upstream but on our side, this test was disabled > > internally due to lack of CC support in BPF programs. This was fixed in the > > meanwhile in 837a3d66d698 (selftests: net: Add cross-compilation support for > > BPF programs) and we found this issue while trying to reenable the test. > > > > So if you think that is reasonable, I could add a Fixes tag for the initial > > script commit edae34a3ed92 (selftests net: add UDP GRO fraglist + bpf > > self-tests) and push a v3. > > We have queued commit 3c107f36db06 ("selftests/net: mv bpf/nat6to4.c > to net folder") in net-next, I think that should fix it, too? That would fix it indeed. Thanks for the pointer. > > > > What tree did you base this patch on? Doesn't seem to apply > > > > The patches were done on top of > > git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git, the master > > branch - 948ef7bb70c4 (Merge tag 'modules-6.2-rc6' of > > git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux). There is another > > merge that happened in the meanwhile but the rebase works without issues. I can > > send a rebased v3 if needed. > > Could you try linux-next or net-next ? I have sent a v3 rebased on linux-next, split out the remaining changes and added a commit to fix some shellcheck warnings/errors.
diff --git a/tools/testing/selftests/net/udpgro_frglist.sh b/tools/testing/selftests/net/udpgro_frglist.sh index c9c4b9d65839..1fdf2d53944d 100755 --- a/tools/testing/selftests/net/udpgro_frglist.sh +++ b/tools/testing/selftests/net/udpgro_frglist.sh @@ -6,6 +6,7 @@ readonly PEER_NS="ns-peer-$(mktemp -u XXXXXX)" BPF_FILE="../bpf/xdp_dummy.bpf.o" +BPF_NAT6TO4_FILE="./bpf/nat6to4.o" cleanup() { local -r jobs="$(jobs -p)" @@ -40,8 +41,12 @@ run_one() { ip -n "${PEER_NS}" link set veth1 xdp object ${BPF_FILE} section xdp tc -n "${PEER_NS}" qdisc add dev veth1 clsact - tc -n "${PEER_NS}" filter add dev veth1 ingress prio 4 protocol ipv6 bpf object-file ../bpf/nat6to4.o section schedcls/ingress6/nat_6 direct-action - tc -n "${PEER_NS}" filter add dev veth1 egress prio 4 protocol ip bpf object-file ../bpf/nat6to4.o section schedcls/egress4/snat4 direct-action + tc -n "${PEER_NS}" filter add dev veth1 ingress prio 4 protocol \ + ipv6 bpf object-file "$BPF_NAT6TO4_FILE" section \ + schedcls/ingress6/nat_6 direct-action + tc -n "${PEER_NS}" filter add dev veth1 egress prio 4 protocol \ + ip bpf object-file "$BPF_NAT6TO4_FILE" section \ + schedcls/egress4/snat4 direct-action echo ${rx_args} ip netns exec "${PEER_NS}" ./udpgso_bench_rx ${rx_args} -r & @@ -88,7 +93,7 @@ if [ ! -f ${BPF_FILE} ]; then exit -1 fi -if [ ! -f bpf/nat6to4.o ]; then +if [ ! -f "$BPF_NAT6TO4_FILE" ]; then echo "Missing nat6to4 helper. Build bpfnat6to4.o selftest first" exit -1 fi
The udpgro_frglist.sh uses nat6to4.o which is tested for existence in bpf/nat6to4.o (relative to the script). This is where the object is compiled. Even so, the script attempts to use it as part of tc with a different path (../bpf/nat6to4.o). As a consequence, this fails the script: Error opening object ../bpf/nat6to4.o: No such file or directory Cannot initialize ELF context! Unable to load program This change refactors these references to use a variable for consistency and also reformats two long lines. Signed-off-by: Andrei Gherzan <andrei.gherzan@canonical.com> --- tools/testing/selftests/net/udpgro_frglist.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)