diff mbox series

[net-next,v2,2/2] selftests: net: use the dummy bpf from net/lib

Message ID 20250306171158.1836674-2-kuba@kernel.org (mailing list archive)
State New
Headers show
Series [net-next,v2,1/2] selftests: drv-net: add path helper for net/lib | expand

Commit Message

Jakub Kicinski March 6, 2025, 5:11 p.m. UTC
Commit 29b036be1b0b ("selftests: drv-net: test XDP, HDS auto and
the ioctl path") added an sample XDP_PASS prog in net/lib, so
that we can reuse it in various sub-directories. Delete the old
sample and use the one from the lib in existing tests.

Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
v2:
 - also remove the one in drivers/net/hw/
v1: https://lore.kernel.org/20250228212956.25399-2-kuba@kernel.org
---
 .../selftests/drivers/net/hw/xdp_dummy.bpf.c        | 13 -------------
 tools/testing/selftests/net/xdp_dummy.bpf.c         | 13 -------------
 tools/testing/selftests/drivers/net/hw/irq.py       |  2 +-
 tools/testing/selftests/net/udpgro_bench.sh         |  2 +-
 tools/testing/selftests/net/udpgro_frglist.sh       |  2 +-
 tools/testing/selftests/net/udpgro_fwd.sh           |  2 +-
 tools/testing/selftests/net/veth.sh                 |  2 +-
 7 files changed, 5 insertions(+), 31 deletions(-)
 delete mode 100644 tools/testing/selftests/drivers/net/hw/xdp_dummy.bpf.c
 delete mode 100644 tools/testing/selftests/net/xdp_dummy.bpf.c

Comments

Willem de Bruijn March 6, 2025, 7:35 p.m. UTC | #1
Jakub Kicinski wrote:
> Commit 29b036be1b0b ("selftests: drv-net: test XDP, HDS auto and
> the ioctl path") added an sample XDP_PASS prog in net/lib, so
> that we can reuse it in various sub-directories. Delete the old
> sample and use the one from the lib in existing tests.
> 
> Acked-by: Stanislav Fomichev <sdf@fomichev.me>
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>

> diff --git a/tools/testing/selftests/net/udpgro_bench.sh b/tools/testing/selftests/net/udpgro_bench.sh
> index c51ea90a1395..815fad8c53a8 100755
> --- a/tools/testing/selftests/net/udpgro_bench.sh
> +++ b/tools/testing/selftests/net/udpgro_bench.sh
> @@ -7,7 +7,7 @@ source net_helper.sh
>  
>  readonly PEER_NS="ns-peer-$(mktemp -u XXXXXX)"
>  
> -BPF_FILE="xdp_dummy.bpf.o"
> +BPF_FILE="lib/xdp_dummy.bpf.o"

Just curious:

How does tools/testing/selftests/net/lib get compiled? The other
subdirs of net are separate explicit targets in
tools/testing/selftests/Makefile

And what is the magic that avoids the need for adding bpf objects to
.gitignore?
Jakub Kicinski March 6, 2025, 8:56 p.m. UTC | #2
On Thu, 06 Mar 2025 14:35:09 -0500 Willem de Bruijn wrote:
> How does tools/testing/selftests/net/lib get compiled? 
> The other subdirs of net are separate explicit targets in
> tools/testing/selftests/Makefile

There is some magic / hack at top level:

# Networking tests want the net/lib target, include it automatically  
ifneq ($(filter net drivers/net drivers/net/hw,$(TARGETS)),)    
ifeq ($(filter net/lib,$(TARGETS)),)    
        INSTALL_DEP_TARGETS := net/lib  
endif  
endif  

https://web.git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/tools/testing/selftests/Makefile#n129

> And what is the magic that avoids the need for adding bpf objects to
> .gitignore?

All BPF files are suffixed with .bpf.c and we turn that into .bpf.o
So they have an .o at the end, I think the global gitignore ignores
those?
Willem de Bruijn March 6, 2025, 10:20 p.m. UTC | #3
On Thu, Mar 6, 2025 at 3:56 PM Jakub Kicinski <kuba@kernel.org> wrote:
>
> On Thu, 06 Mar 2025 14:35:09 -0500 Willem de Bruijn wrote:
> > How does tools/testing/selftests/net/lib get compiled?
> > The other subdirs of net are separate explicit targets in
> > tools/testing/selftests/Makefile
>
> There is some magic / hack at top level:
>
> # Networking tests want the net/lib target, include it automatically
> ifneq ($(filter net drivers/net drivers/net/hw,$(TARGETS)),)
> ifeq ($(filter net/lib,$(TARGETS)),)
>         INSTALL_DEP_TARGETS := net/lib
> endif
> endif

Oh right.
>
> https://web.git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/tools/testing/selftests/Makefile#n129
>
> > And what is the magic that avoids the need for adding bpf objects to
> > .gitignore?
>
> All BPF files are suffixed with .bpf.c and we turn that into .bpf.o
> So they have an .o at the end, I think the global gitignore ignores
> those?

Also makes sense. Thanks!

Reviewed-by: Willem de Bruijn <willemb@google.com>
diff mbox series

Patch

diff --git a/tools/testing/selftests/drivers/net/hw/xdp_dummy.bpf.c b/tools/testing/selftests/drivers/net/hw/xdp_dummy.bpf.c
deleted file mode 100644
index d988b2e0cee8..000000000000
--- a/tools/testing/selftests/drivers/net/hw/xdp_dummy.bpf.c
+++ /dev/null
@@ -1,13 +0,0 @@ 
-// SPDX-License-Identifier: GPL-2.0
-
-#define KBUILD_MODNAME "xdp_dummy"
-#include <linux/bpf.h>
-#include <bpf/bpf_helpers.h>
-
-SEC("xdp")
-int xdp_dummy_prog(struct xdp_md *ctx)
-{
-	return XDP_PASS;
-}
-
-char _license[] SEC("license") = "GPL";
diff --git a/tools/testing/selftests/net/xdp_dummy.bpf.c b/tools/testing/selftests/net/xdp_dummy.bpf.c
deleted file mode 100644
index d988b2e0cee8..000000000000
--- a/tools/testing/selftests/net/xdp_dummy.bpf.c
+++ /dev/null
@@ -1,13 +0,0 @@ 
-// SPDX-License-Identifier: GPL-2.0
-
-#define KBUILD_MODNAME "xdp_dummy"
-#include <linux/bpf.h>
-#include <bpf/bpf_helpers.h>
-
-SEC("xdp")
-int xdp_dummy_prog(struct xdp_md *ctx)
-{
-	return XDP_PASS;
-}
-
-char _license[] SEC("license") = "GPL";
diff --git a/tools/testing/selftests/drivers/net/hw/irq.py b/tools/testing/selftests/drivers/net/hw/irq.py
index 42ab98370245..e3c2201bb58b 100755
--- a/tools/testing/selftests/drivers/net/hw/irq.py
+++ b/tools/testing/selftests/drivers/net/hw/irq.py
@@ -69,7 +69,7 @@  from lib.py import cmd, ip, defer
 def check_reconfig_xdp(cfg) -> None:
     def reconfig(cfg) -> None:
         ip(f"link set dev %s xdp obj %s sec xdp" %
-            (cfg.ifname, cfg.rpath("xdp_dummy.bpf.o")))
+            (cfg.ifname, cfg.lpath("xdp_dummy.bpf.o")))
         ip(f"link set dev %s xdp off" % cfg.ifname)
 
     _check_reconfig(cfg, reconfig)
diff --git a/tools/testing/selftests/net/udpgro_bench.sh b/tools/testing/selftests/net/udpgro_bench.sh
index c51ea90a1395..815fad8c53a8 100755
--- a/tools/testing/selftests/net/udpgro_bench.sh
+++ b/tools/testing/selftests/net/udpgro_bench.sh
@@ -7,7 +7,7 @@  source net_helper.sh
 
 readonly PEER_NS="ns-peer-$(mktemp -u XXXXXX)"
 
-BPF_FILE="xdp_dummy.bpf.o"
+BPF_FILE="lib/xdp_dummy.bpf.o"
 
 cleanup() {
 	local -r jobs="$(jobs -p)"
diff --git a/tools/testing/selftests/net/udpgro_frglist.sh b/tools/testing/selftests/net/udpgro_frglist.sh
index 17404f49cdb6..5f3d1a110d11 100755
--- a/tools/testing/selftests/net/udpgro_frglist.sh
+++ b/tools/testing/selftests/net/udpgro_frglist.sh
@@ -7,7 +7,7 @@  source net_helper.sh
 
 readonly PEER_NS="ns-peer-$(mktemp -u XXXXXX)"
 
-BPF_FILE="xdp_dummy.bpf.o"
+BPF_FILE="lib/xdp_dummy.bpf.o"
 
 cleanup() {
 	local -r jobs="$(jobs -p)"
diff --git a/tools/testing/selftests/net/udpgro_fwd.sh b/tools/testing/selftests/net/udpgro_fwd.sh
index 550d8eb3e224..f22f6c66997e 100755
--- a/tools/testing/selftests/net/udpgro_fwd.sh
+++ b/tools/testing/selftests/net/udpgro_fwd.sh
@@ -3,7 +3,7 @@ 
 
 source net_helper.sh
 
-BPF_FILE="xdp_dummy.bpf.o"
+BPF_FILE="lib/xdp_dummy.bpf.o"
 readonly BASE="ns-$(mktemp -u XXXXXX)"
 readonly SRC=2
 readonly DST=1
diff --git a/tools/testing/selftests/net/veth.sh b/tools/testing/selftests/net/veth.sh
index 6bb7dfaa30b6..9709dd067c72 100755
--- a/tools/testing/selftests/net/veth.sh
+++ b/tools/testing/selftests/net/veth.sh
@@ -1,7 +1,7 @@ 
 #!/bin/sh
 # SPDX-License-Identifier: GPL-2.0
 
-BPF_FILE="xdp_dummy.bpf.o"
+BPF_FILE="lib/xdp_dummy.bpf.o"
 readonly STATS="$(mktemp -p /tmp ns-XXXXXX)"
 readonly BASE=`basename $STATS`
 readonly SRC=2