On 8/20/25 5:24 PM, Roman Gushchin wrote:
How is it decided who gets to run before the other? Is it based on
order of attachment (which can be non-deterministic)?
Yeah, now it's the order of attachment.
There was a lot of discussion on something similar for tc progs, and
we went with specific flags that capture partial ordering constraints
(instead of priorities that may collide).
https://lore.kernel.org/all/20230719140858.13224-2-daniel@xxxxxxxxxxxxx
It would be nice if we can find a way of making this consistent.
+1
The cgroup bpf prog has recently added the mprog api support also. If the simple
order of attachment is not enough and needs to have specific ordering, we should
make the bpf struct_ops support the same mprog api instead of asking each
subsystem creating its own.
fyi, another need for struct_ops ordering is to upgrade the
BPF_PROG_TYPE_SOCK_OPS api to struct_ops for easier extension in the future.
Slide 13 in https://drive.google.com/file/d/1wjKZth6T0llLJ_ONPAL_6Q_jbxbAjByp/view