Some last year work that did not went through
first 2 commits are no-brainer IIRC.
The third one namespaces the various programs with the object name. This will allow to have multiple programs with the same name from different objects.
Initially I thought at not doing this namespacing because I wanted to conflict the programs with the ones that the kernel would load itself, but it turns out that the kernel itself can not and will not pin its program into the bpffs, so we are actually free to do anything we like.
The last commit about also pinning maps is required for bpf_timers
. If we want to delay something in a BPF timer, the map has already been gone away, and it won't work. So we better pin all of the maps as well.
Note that there is currently no example of bpf_timers
, so you have to trust me on this, but OTOH, it's not like we can not revert this if we ever realize it's not worth it.