Re: num_args branch
dave seddon <[email protected]> Thu, 19 Mar 2026 11:38:00 -0700
| Newsgroups | dev.linux.lists.xdp2 |
|---|---|
| Message-ID | <CANypexSeMoQDCukmxyrUdYrKzMrz2v7c0K1G11htY13sMHpMRA@mail.gmail.com> |
G'day Filipe, I hope you are doing well. Now that the samples work and I can verify them on RISC-V and ARM, I thought adding static analysis would help. Static analysis should help us a bit faster. The static analysis has a LOT of false positives, so there is a triage system, but I think it did find some small bugs. Static analysis code https://github.com/randomizedcoder/xdp2/pull/1 Bug fixes, and updated readme https://github.com/randomizedcoder/xdp2/pull/2 I'm now working on upgrading cppfront to the latest version. Thanks, Dave On Tue, Mar 17, 2026 at 8:01=E2=80=AFPM dave seddon <[email protected]= om> wrote: > > G'day Tom, > > Sorry for the delay. > > The good news is that all samples work on x86, arm64 and riscv64. > This is all Nix-ified, making it quite easy to reproduce. > https://github.com/randomizedcoder/xdp2/blob/pr/nix-bpf-compat-samples/do= cumentation/nix/test-summary.md > > Cross compilation all works via Nix > https://github.com/randomizedcoder/xdp2/blob/pr/nix-bpf-compat-samples/do= cumentation/nix/nix.md#cross-compilation > > Virtual machine-based testing is also suitable for "nightly" testing. > It spins up qemu virtual machines and runs through a series of tests. > https://github.com/randomizedcoder/xdp2/blob/pr/nix-bpf-compat-samples/do= cumentation/nix/nix.md#microvm-integration-testing > > It took a while to get it all working and testing, and I've tried to > break it up into a series of commits that is hopefully understandable. > https://github.com/xdp2-dev/xdp2/pull/13 > > I haven't tested this on Ubuntu yet, but I definitely need to do that. > At the SCALE conference somebody had a repo for using Nix to do Ubuntu > virtual machines, so that's probably the way to go. > > Thanks, > Dave > > > On Thu, Feb 26, 2026 at 8:10=E2=80=AFAM dave seddon <dave.seddon.ca@gmail= .com> wrote: > > > > G'day, > > > > Progress on RISC-V cross-compiling is very slow. I'm actually not sure= why it is so slow. ( Maybe this could help: https://github.com/Snektron/p= areas ? ) > > > > I did get the little LicheePi 4A ( https://en.wiki.sipeed.com/hardware/= en/lichee/th1520/lpi4a/1_intro.html ) out, but it's not booting for unknown= reasons. :( > > > > Essentially, Nix compiles and links all the pieces, then it hits an err= or, so I skip the tests, and it progresses. > > > > building '/nix/store/5cvh37lpbw8i6pzx78alqkyq547231n0-python3.13-cffi-1= .17.1.drv'... > > building '/nix/store/i5q7ifaj5dqm1xzmbls36jwcfanl6naj-nss-cacert-3.115.= drv'... > > building '/nix/store/af2slsbc1dy4qxdw67p9byxgk8bfizs8-python3.13-chamel= eon-4.6.0.drv'... > > building '/nix/store/jdm6yhfzk2m7jw1wi53qfgg8jz1wq4nf-libressl-4.1.0.dr= v'... > > building '/nix/store/8ksbr1fyc2m2i84v893aal0gywzbn9ni-perl5.40.0-Mozill= a-CA-20230821.drv'... > > building '/nix/store/9j9f40wmd97wbnxw0cxg8w8w3r1b56xs-python3.13-certif= i-2025.07.14.drv'... > > building '/nix/store/m5gac10c4vpxsi8kg7hr54y8lbcyr3jw-perl5.40.0-IO-Soc= ket-SSL-2.083.drv'... > > building '/nix/store/v9apzxsl5hjdpjn62cysg0ggjw892z9m-python3.13-click-= 8.1.8.drv'... > > building '/nix/store/lj7mn9c9qaz8ac3qk30j8cm9crq9xz38-perl5.40.0-Net-SM= TP-SSL-1.04.drv'... > > building '/nix/store/mvsbz33grad5ax0niwyypnkgk3fg11dl-python3.13-defuse= dxml-0.8.0rc2.drv'... > > building '/nix/store/zda4nzrg7amqvrb75rp77yz2jzn9mpcw-python3.13-idna-3= .10.drv'... > > building '/nix/store/33a38c1yiv576pcr4bjfmd5lf0v4912r-python3.13-markup= safe-3.0.2.drv'... > > building '/nix/store/9wp0ay3d4sasks7gzn0mgdkp97fpvg4y-python3.13-mypy-e= xtensions-1.1.0.drv'... > > building '/nix/store/njw6l3q1kffri3rlc4f25avbrqf7qnnv-python3.13-psutil= -7.0.0.drv'... > > building '/nix/store/32c7q6zmq15x5v65jl188z36swxhxb76-python3.13-ptypro= cess-0.7.0.drv'... > > error: Cannot build '/nix/store/njw6l3q1kffri3rlc4f25avbrqf7qnnv-python= 3.13-psutil-7.0.0.drv'. > > Reason: builder failed with exit code 1. > > Output paths: > > /nix/store/pw5m4561cajw5padys0dyjd9hhc80g4j-python3.13-psutil-= 7.0.0 > > /nix/store/r2w0k92mwnpf41wgbbaj0sj2kxzwznn7-python3.13-psutil-= 7.0.0-dist > > Last 25 log lines: > > > ^^^^^^^^^^^^^^^^^^^^^^^^^^ > > > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ = _ _ _ _ _ _ _ _ _ > > > > > > def net_if_stats(): > > > """Get NIC stats (isup, duplex, speed, mtu).""" > > > duplex_map =3D { > > > cext.DUPLEX_FULL: NIC_DUPLEX_FULL, > > > cext.DUPLEX_HALF: NIC_DUPLEX_HALF, > > > cext.DUPLEX_UNKNOWN: NIC_DUPLEX_UNKNOWN, > > > } > > > names =3D net_io_counters().keys() > > > ret =3D {} > > > for name in names: > > > try: > > > mtu =3D cext_posix.net_if_mtu(name) > > > flags =3D cext_posix.net_if_flags(name) > > > > duplex, speed =3D cext.net_if_duplex_speed(nam= e) > > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > > E OSError: [Errno 25] Inappropriate ioctl for de= vice (originated from ioctl(SIOCETHTOOL)) > > > > > > /nix/store/pw5m4561cajw5padys0dyjd9hhc80g4j-python3.13-psutil-= 7.0.0/lib/python3.13/site-packages/psutil/_pslinux.py:1055: OSError > > > > > > Probably the best way forward would be to get one of these for ~$130 > > https://www.amazon.com/youyeetoo-Banana-BPI-F3-Acrylic-Developer/dp/B0D= FPZ8B6G/?th=3D1 > > > > Regards, > > Dave > > > > On Fri, Feb 20, 2026 at 11:41=E2=80=AFAM dave seddon <dave.seddon.ca@gm= ail.com> wrote: > >> > >> Oh my goodness compiling RISC-V is slow! Actually, cross compiling is > >> ok, it's the other steps that need to run by the emulation that is > >> slow. > >> > >> I actually have a little RISC-V SoC, so I'm away this weekend, but > >> early next week I can dig that out and try to get it going. > >> > >> On Wed, Feb 18, 2026 at 10:02=E2=80=AFAM dave seddon <dave.seddon.ca@g= mail.com> wrote: > >> > > >> > G'day, > >> > > >> > I hope you are doing well. > >> > > >> > I have a basic virtual machine based test that: > >> > 1. Spins up the VM > >> > 2. Verifies boot > >> > 3. VM itself attaches the ebpf code to an interface. This obviously > >> > causes the ebpf verifier to run. > >> > 4. Script then verifies the attachment to the interface > >> > 5. Shuts down > >> > > >> > Hopefully this is enough for the initial implementation. Obviously, > >> > it would be nice to actually send some packets to see that the ebpf > >> > code <does the thing>, but that can come later. > >> > > >> > I've done this for x86, because this was the quickest thing to get > >> > working. I'll now start on adding more architectures. I assume you > >> > what riscv 32 and 64. > >> > > >> > How long will it take? "Prediction is very difficult =E2=80=94 espe= cially > >> > about the future". Maybe a few more days? I could be very wrong. > >> > > >> > Thanks, > >> > Dave > >> > > >> > On Mon, Feb 16, 2026 at 5:03=E2=80=AFPM dave seddon <dave.seddon.ca@= gmail.com> wrote: > >> > > > >> > > G'day, > >> > > > >> > > I just got all the samples working with the 5 args. Awesome! > >> > > > >> > > Changing common_parser.template.c was required to get parser_tmpl = -O working > >> > > > >> > > -------------------- > >> > > [das@l:~/Downloads/xdp2]$ git diff src/templates/xdp2/common_parse= r.template.c > >> > > diff --git a/src/templates/xdp2/common_parser.template.c > >> > > b/src/templates/xdp2/common_parser.template.c > >> > > index 82792e6..91f5bb3 100644 > >> > > --- a/src/templates/xdp2/common_parser.template.c > >> > > +++ b/src/templates/xdp2/common_parser.template.c > >> > > @@ -50,7 +50,7 @@ static inline __unused() int > >> > > <!--(end)--> > >> > > > >> > > ret =3D __@!parser_name!@_@!root_name!@_xdp2_parse( > >> > > - parser, hdr, len, metadata, frame, 0, ctrl= , flags); > >> > > + parser, hdr, len, metadata, &frame, 0, ctr= l, flags); > >> > > > >> > > ctrl->var.ret_code =3D ret; > >> > > > >> > > > >> > > [das@l:~/Downloads/xdp2]$ > >> > > -------------------- > >> > > > >> > > Starting to work on the samples/xdp/ next > >> > > > >> > > Thanks! > >> > > Dave > >> > > > >> > > On Sun, Feb 15, 2026 at 8:14=E2=80=AFPM dave seddon <dave.seddon.c= [email protected]> wrote: > >> > > > > >> > > > Awesome. Thanks for the update. I'll try to take a look tomorr= ow. > >> > > > > >> > > > > >> > > > On Sun, Feb 15, 2026 at 5:21=E2=80=AFPM Tom Herbert <tom@herbert= land.com> wrote: > >> > > > > > >> > > > > HI, > >> > > > > > >> > > > > I added a num_args branch in xdp2-dev/xdp2 that has the propos= ed fix for the handlers and metadata extraction functions exceeding the fiv= e argument limit of eBPF. Haven't tested much yet. Please give it a try if = you can. > >> > > > > > >> > > > > Tom > >> > > > > > >> > > > > >> > > > > >> > > > -- > >> > > > Regards, > >> > > > Dave Seddon > >> > > > +1 415 857 5102 > >> > > > >> > > > >> > > > >> > > -- > >> > > Regards, > >> > > Dave Seddon > >> > > +1 415 857 5102 > >> > > >> > > >> > > >> > -- > >> > Regards, > >> > Dave Seddon > >> > +1 415 857 5102 > >> > >> > >> > >> -- > >> Regards, > >> Dave Seddon > >> +1 415 857 5102 > > > > > > > > -- > > Regards, > > Dave Seddon > > +1 415 857 5102 > > > > -- > Regards, > Dave Seddon > +1 415 857 5102 --=20 Regards, Dave Seddon +1 415 857 5102