On Sun, Apr 2, 2023 at 1:30 AM Jesper Dangaard Brouer <brouer@xxxxxxxxxx> wrote: > > Update BPF selftests to use the new RSS type argument for kfunc > bpf_xdp_metadata_rx_hash. > > Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx> > Acked-by: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> > Acked-by: Stanislav Fomichev <sdf@xxxxxxxxxx> > --- > .../selftests/bpf/prog_tests/xdp_metadata.c | 2 ++ > .../testing/selftests/bpf/progs/xdp_hw_metadata.c | 14 +++++++++----- > tools/testing/selftests/bpf/progs/xdp_metadata.c | 6 +++--- > tools/testing/selftests/bpf/progs/xdp_metadata2.c | 7 ++++--- > tools/testing/selftests/bpf/xdp_hw_metadata.c | 2 +- > tools/testing/selftests/bpf/xdp_metadata.h | 1 + > 6 files changed, 20 insertions(+), 12 deletions(-) > > diff --git a/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c b/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c > index aa4beae99f4f..8c5e98da9ae9 100644 > --- a/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c > +++ b/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c > @@ -273,6 +273,8 @@ static int verify_xsk_metadata(struct xsk *xsk) > if (!ASSERT_NEQ(meta->rx_hash, 0, "rx_hash")) > return -1; > > + ASSERT_EQ(meta->rx_hash_type, 0, "rx_hash_type"); > + > xsk_ring_cons__release(&xsk->rx, 1); > refill_rx(xsk, comp_addr); > > diff --git a/tools/testing/selftests/bpf/progs/xdp_hw_metadata.c b/tools/testing/selftests/bpf/progs/xdp_hw_metadata.c > index 4c55b4d79d3d..7b3fc12e96d6 100644 > --- a/tools/testing/selftests/bpf/progs/xdp_hw_metadata.c > +++ b/tools/testing/selftests/bpf/progs/xdp_hw_metadata.c > @@ -14,8 +14,8 @@ struct { > > extern int bpf_xdp_metadata_rx_timestamp(const struct xdp_md *ctx, > __u64 *timestamp) __ksym; > -extern int bpf_xdp_metadata_rx_hash(const struct xdp_md *ctx, > - __u32 *hash) __ksym; > +extern int bpf_xdp_metadata_rx_hash(const struct xdp_md *ctx, __u32 *hash, > + enum xdp_rss_hash_type *rss_type) __ksym; > > SEC("xdp") > int rx(struct xdp_md *ctx) > @@ -74,10 +74,14 @@ int rx(struct xdp_md *ctx) > else > meta->rx_timestamp = 0; /* Used by AF_XDP as not avail signal */ > > - if (!bpf_xdp_metadata_rx_hash(ctx, &meta->rx_hash)) > - bpf_printk("populated rx_hash with %u", meta->rx_hash); > - else > + if (!bpf_xdp_metadata_rx_hash(ctx, &meta->rx_hash, &meta->rx_hash_type)) { > + bpf_printk("populated rx_hash:0x%X type:0x%X", > + meta->rx_hash, meta->rx_hash_type); > + if (!(meta->rx_hash_type & XDP_RSS_L4)) > + bpf_printk("rx_hash low quality L3 hash type"); > + } else { > meta->rx_hash = 0; /* Used by AF_XDP as not avail signal */ > + } Didn't we agree in the previous thread to remove these printks and replace them with actual stats that user space can see?