diff mbox series

[v2,1/2] selftests: net: Fix missing nat6to4.o when running udpgro_frglist.sh

Message ID 20230125211350.113855-1-andrei.gherzan@canonical.com (mailing list archive)
State New
Headers show
Series [v2,1/2] selftests: net: Fix missing nat6to4.o when running udpgro_frglist.sh | expand

Commit Message

Andrei Gherzan Jan. 25, 2023, 9:13 p.m. UTC
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(-)

Comments

Jakub Kicinski Jan. 26, 2023, 7:08 a.m. UTC | #1
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>
Andrei Gherzan Jan. 26, 2023, 10:01 a.m. UTC | #2
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>
Jakub Kicinski Jan. 26, 2023, 11:36 p.m. UTC | #3
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 ?
Andrei Gherzan Jan. 27, 2023, 2:10 p.m. UTC | #4
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 mbox series

Patch

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