BPF updates 04
This is issue 04 of the regular newsletter around BPF written by Alexander Alemayhu. It summarizes ongoing development, presentations, videos and other information related to BPF and XDP. It is released roughly once a week.
Linux 4.12-rc2 was released last week. One usual [GIT] Networking
pull request made it in which includes two BPF fixes. See 18th May for the details.
In last week's issue ARM 32-bit was mentioned. As you can see from the patches section an eBPF JIT RFC just got posted recently. Checkout the discussion on the linux-arm-kernel list.
Other interesting news 0day kernel testing bot for BPF selftests. The patches do go through extensive review, but hopefully this catches regressions if any.
Videos
Infrastructure 2017 - Alfonso Acosta - High-performance Linux monitoring with eBPF
Nice talk on BPF and how Weaveworks is leveraging it in scope.
PyCon 2017 - Alex Gartrell - Executing python functions in the linux kernel by transpiling to bpf
Good talk on BPF with a python centric perspective. The walk-through is great and easy to follow.
In case you missed it
BPF Verifier Overview
Interesting read on the verifier. It explains some of the checks performed and why.
Alignment in BPF verifier
Some of this stuff is over my head, but from the reading it looks like we have a new algorithm for alignment checking. The early implementation is in python. While initially on a different topic, the thread on [PATCH v2 1/3] bpf: Use 1<<16 data-preserve-html-node="true" as ceiling for immediate alignment in verifier. is worth reading to get the full context.
An entertaining eBPF XDP adventure
Fun read on the solving a challenge. Starts out with basics and goes into code examples.
XDP Newbies...
Which is a place where people can talk about getting up to speed with setting up an XDP build environment and writing XDP programs.
You can subscribe by sending a email to majordomo@vger.kernel.org
, with a message body containing subscribe xdp-newbies
. No subject is needed, but you can of course add one if you like.
Random cool note
as I've said to a number of people job hunting in systems engineering: BPF experience is hot and getting hotter
Patches
- Daniel Borkmann, [PATCH net] bpf: adjust verifier heuristics
- Daniel Borkmann, [PATCH net 0/3] BPF pruning follow-up
- Yonghong Song, [PATCH net v2] selftests/bpf: fix broken build due to types.h
- Jesper Dangaard Brouer, [RFC net-next PATCH 0/5] XDP driver feature API and handling change to xdp_buff
- [RFC net-next PATCH 1/5] samples/bpf:
xdp_tx_iptunnel
make use of map_data[] - [RFC net-next PATCH 2/5] mlx5: fix bug reading
rss_hash_type
from CQE - [RFC net-next PATCH 3/5] net: introduce XDP driver features interface
- [RFC net-next PATCH 4/5] net: new XDP feature for reading HW rxhash from drivers
- [RFC net-next PATCH 5/5] mlx5: add XDP rxhash feature for driver mlx5
- [RFC net-next PATCH 1/5] samples/bpf:
- Teng Qin, [PATCH net-next 0/2] perf, bpf: add support for HW_CACHE and RAW events
- Teng Qin, [PATCH net-next] bpf: update perf event helper function signature and documentation
- Shubham Bansal, [PATCH] RFC: arm: eBPF JIT compiler
- Gustavo A. R. Silva, [PATCH] kernel: bpf: remove dead code
Please note that netdev receives a lot of patches and the list above is not meant to be comprehensive.
Happy eBPF hacking!