Last time I tried BPF was via an Ubuntu VM prepared for BPF. But this week checking another article, I realised that I can run BPF natively in my laptop!!!
So aptitude did the job installing the package, and didn’t have to install a new kernel or patch, so super easy and I can see it is working as based in the article:
# apt depends bpftrace bpftrace Depends: libbpfcc (>= 0.12.0) Depends: libc6 (>= 2.27) Depends: libclang1-9 (>= 1:9~svn359771-1~) Depends: libgcc-s1 (>= 3.0) Depends: libllvm9 (>= 1:9~svn298832-1~) Depends: libstdc++6 (>= 5.2) # # # dpkg -l | grep bpftrace ii bpftrace 0.11.0-1 amd64 high-level tracing language for Linux eBPF # # uname -a Linux athens 5.8.0-1-amd64 #1 SMP Debian 5.8.7-1 (2020-09-05) x86_64 GNU/Linux # # # bpftrace -e 'software:faults:1 { @[comm] = count(); }' Attaching 1 probe… ^C @[BatteryStatusNo]: 1 @[slack]: 52 @[Xorg]: 139 @[VizCompositorTh]: 455 @[Chrome_IOThread]: 463 @[ThreadPoolForeg]: 1305 @[CompositorTileW]: 2272 @[Compositor]: 3789 @[Chrome_ChildIOT]: 4610 @[chrome]: 8020 #
And run the same script.
# bpftrace bpftrace-example.bt Attaching 2 probes… Sampling CPU at 99hz… Hit Ctrl-C to end. ^C @cpu: [0, 1) 33 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@| [1, 2) 23 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | [2, 3) 31 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | [3, 4) 23 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | #
Now I really need to play with it in my own system, no excuse...