On Mon, Nov 7, 2022 at 9:33 AM Alexander Lobakin <alexandr.lobakin@xxxxxxxxx> wrote: > > From: Stanislav Fomichev <sdf@xxxxxxxxxx> > Date: Fri, 4 Nov 2022 11:21:47 -0700 > > > On Fri, Nov 4, 2022 at 7:38 AM Alexander Lobakin > > <alexandr.lobakin@xxxxxxxxx> wrote: > > > > > > From: Stanislav Fomichev <sdf@xxxxxxxxxx> > > > Date: Thu,3 Nov 2022 20:25:28 -0700 > > [...] > > > > Hey, > > > > > > FYI, our team wants to write a follow-up patch with ice support > > > added, not like a draft, more of a mature code. I'm thinking of > > > calling ice C function which would process Rx descriptors from > > > that BPF code from the unrolling callback -- otherwise, > > > implementing a couple hundred C code lines from ice_txrx_lib.c > > > would be a bit too much :D > > > > Sounds good! I would gladly drop all/most of the driver changes for > > the non-rfc posting :-) > > I'll probably have a mlx4 one because there is a chance I might find > > HW, but the rest I'll drop most likely. > > (they are here to show how the driver changes might look like, hence > > compile-tested only) > > > > Btw, does it make sense to have some small xsk selftest binary that > > can be used to test the metadata with the real device? > > The one I'm having right now depends on veth/namespaces; having a > > similar one for the real hardware to qualify it sounds useful? > > Something simple that sets up af_xdp for all queues, divers some > > traffic, and exposes to the userspace consumer all the info about > > frame metadata... > > Or maybe there is something I can reuse already? > > There's XSk selftest already and recently Maciej added support for > executing it on a physical device (via `-i <iface>` cmdline arg)[0]. > I guess the most optimal solution is to expand it to cover metadata > cases as it has some sort of useful helper functions / infra? In the > set I posted in June, I simply expanded xdp_meta selftest, but there > weren't any XSk bits, so I don't think it's a way to go. Yeah, I was also extending xskxceiver initially, but not sure we want to put metadata in there (that test is already too big imo)? Jesper also pointed out [0], so maybe that thing should live out-of-tree? I got mlx4 working locally with a small xskxceiver-like selftest. I'll probably include it in the next non-rfc submission and we can discuss whether it makes sense to keep it or it's better to extend xskxceiver. 0: https://github.com/xdp-project/bpf-examples/tree/master/AF_XDP-interaction > > > > > > > > + } else if (func_id == xdp_metadata_kfunc_id(XDP_METADATA_KFUNC_RX_TIMESTAMP_SUPPORTED)) { > > > > + /* return true; */ > > > > + bpf_patch_append(patch, BPF_MOV64_IMM(BPF_REG_0, 1)); > > > > + } else if (func_id == xdp_metadata_kfunc_id(XDP_METADATA_KFUNC_RX_TIMESTAMP)) { > > > > > > [...] > > > > > > > -- > > > > 2.38.1.431.g37b22c650d-goog > > > > > > Thanks, > > > Olek > > [0] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a693ff3ed5610a07b1b0dd831d10f516e13cf6c6 > > Thank, > Olek