On Sat, Apr 8, 2023 at 12:24 PM Jesper Dangaard Brouer <brouer@xxxxxxxxxx> wrote: > > The tool xdp_hw_metadata can be used by driver developers > implementing XDP-hints kfuncs. The tool transfers the > XDP-hints via metadata information to an AF_XDP userspace > process. When everything works the bpf_printk calls are > unncesssary. Thus, disable bpf_printk by default, but > make it easy to reenable for driver developers to use > when debugging their driver implementation. > > This also converts bpf_printk "forwarding UDP:9091 to AF_XDP" > into a code comment. The bpf_printk's that are important > to the driver developers is when bpf_xdp_adjust_meta fails. > The likely mistake from driver developers is expected to > be that they didn't implement XDP metadata adjust support. > > Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx> > --- > .../testing/selftests/bpf/progs/xdp_hw_metadata.c | 16 ++++++++++++++-- > 1 file changed, 14 insertions(+), 2 deletions(-) > > diff --git a/tools/testing/selftests/bpf/progs/xdp_hw_metadata.c b/tools/testing/selftests/bpf/progs/xdp_hw_metadata.c > index 4c55b4d79d3d..980eb60d8e5b 100644 > --- a/tools/testing/selftests/bpf/progs/xdp_hw_metadata.c > +++ b/tools/testing/selftests/bpf/progs/xdp_hw_metadata.c > @@ -5,6 +5,19 @@ > #include <bpf/bpf_helpers.h> > #include <bpf/bpf_endian.h> > > +/* Per default below bpf_printk() calls are disabled. Can be > + * reenabled manually for convenience by XDP-hints driver developer, > + * when troublshooting the drivers kfuncs implementation details. > + * > + * Remember BPF-prog bpf_printk info output can be access via: > + * /sys/kernel/debug/tracing/trace_pipe > + */ > +//#define DEBUG 1 > +#ifndef DEBUG > +#undef bpf_printk > +#define bpf_printk(fmt, ...) ({}) > +#endif Are you planning to eventually do somethike similar to what I've mentioned in [0]? If not, should I try to send a patch? 0: https://lore.kernel.org/netdev/CAKH8qBupRYEg+SPMTMb4h532GESG7P1QdaFJ-+zrbARVN9xrdA@xxxxxxxxxxxxxx/ > + > struct { > __uint(type, BPF_MAP_TYPE_XSKMAP); > __uint(max_entries, 256); > @@ -49,11 +62,10 @@ int rx(struct xdp_md *ctx) > if (!udp) > return XDP_PASS; > > + /* Forwarding UDP:9091 to AF_XDP */ > if (udp->dest != bpf_htons(9091)) > return XDP_PASS; > > - bpf_printk("forwarding UDP:9091 to AF_XDP"); > - > ret = bpf_xdp_adjust_meta(ctx, -(int)sizeof(struct xdp_meta)); > if (ret != 0) { > bpf_printk("bpf_xdp_adjust_meta returned %d", ret); > >