mbox series

[bpf-next,v5,0/2] Refactor lock management

Message ID 20241109225243.2306756-1-memxor@gmail.com (mailing list archive)
Headers show
Series Refactor lock management | expand

Message

Kumar Kartikeya Dwivedi Nov. 9, 2024, 10:52 p.m. UTC
This set refactors lock management in the verifier in preparation for
spin locks that can be acquired multiple times. In addition to this,
unnecessary code special case reference leak logic for callbacks is also
dropped, that is no longer necessary. See patches for details.

Changelog:
----------
v4 -> v5
v4: https://lore.kernel.org/bpf/20241109074347.1434011-1-memxor@gmail.com

 * Make active_locks part of bpf_func_state (Alexei)
 * Remove unneeded in_callback_fn logic for references

v3 -> v4
v3: https://lore.kernel.org/bpf/20241104151716.2079893-1-memxor@gmail.com

* Address comments from Alexei
  * Drop struct bpf_active_lock definition
  * Name enum type, expand definition to multiple lines
  * s/REF_TYPE_BPF_LOCK/REF_TYPE_LOCK/g
  * Change active_lock type to int
  * Fix type of 'type' in acquire_lock_state
  * Filter by taking type explicitly in find_lock_state
  * WARN for default case in refsafe switch statement

v2 -> v3
v2: https://lore.kernel.org/bpf/20241103212252.547071-1-memxor@gmail.com

  * Rebase on bpf-next to resolve merge conflict

v1 -> v2
v1: https://lore.kernel.org/bpf/20241103205856.345580-1-memxor@gmail.com

  * Fix refsafe state comparison to check callback_ref and ptr separately.

Kumar Kartikeya Dwivedi (2):
  bpf: Refactor active lock management
  bpf: Drop special callback reference handling

 include/linux/bpf_verifier.h                  |  40 ++---
 kernel/bpf/verifier.c                         | 168 ++++++++++++------
 .../selftests/bpf/prog_tests/cb_refs.c        |   4 +-
 3 files changed, 126 insertions(+), 86 deletions(-)


base-commit: 163ea3dec3c8048618f561a2c3b30f4c5795e991