Hello, I would like to propose a session on locking and synchronization in BPF programs. We will discuss recent changes and how locking and synchronization primitives should evolve to support more diverse use cases. The adoption of BPF arenas has introduced some new challenges. We need primitives that allow proper synchronization between BPF programs running in the kernel, and applications running in user space. Data structures written for BPF arenas are shared across the user-kernel boundary, and current synchronization mechanisms fall short in addressing all needs. With the resilient queued spin locks series [0], we've taken a step towards more flexible and safe locking. Introduction of these spin locks allow us to relax constraints in BPF programs, however, to permit more complicated logic in critical sections, and enable locks in more program types, additional work and analysis is necessary. Some relevant discussion topics include: * Relaxing verifier restrictions for current spin lock usage. * BPF arena spin lock implementation. * Holding locks across user-kernel boundaries, and associated challenges. * Allowing user space readers to act as RCU readers, and BPF program in the kernel as the writer, or vice-versa. * Potentially sharing locks between the kernel and BPF programs, for mutating kernel data structures. [0]: https://lore.kernel.org/bpf/20250206105435.2159977-1-memxor@xxxxxxxxx