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. > > > > > + } 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