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 |
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?
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?
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 --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