Merge branch 'Add lookup_and_delete_elem support to BPF hash map types'
Denis Salopek says:
====================
This patch series extends the existing bpf_map_lookup_and_delete_elem()
functionality with 4 more map types:
- BPF_MAP_TYPE_HASH,
- BPF_MAP_TYPE_PERCPU_HASH,
- BPF_MAP_TYPE_LRU_HASH and
- BPF_MAP_TYPE_LRU_PERCPU_HASH.
Patch 1 adds most of its functionality and logic as well as
documentation.
As it was previously limited to only stacks and queues which do not
support the BPF_F_LOCK flag, patch 2 enables its usage by adding a new
libbpf API bpf_map_lookup_and_delete_elem_flags() based on the existing
bpf_map_lookup_elem_flags().
Patch 3 adds selftests for lookup_and_delete_elem().
Changes in patch 1:
v7: Minor formating nits, add Acked-by.
v6: Remove unneeded flag check, minor code/format fixes.
v5: Split patch to 3 patches. Extend BPF_MAP_LOOKUP_AND_DELETE_ELEM
documentation with this changes.
v4: Fix the return value for unsupported map types.
v3: Add bpf_map_lookup_and_delete_elem_flags() and enable BPF_F_LOCK
flag, change CHECKs to ASSERT_OKs, initialize variables to 0.
v2: Add functionality for LRU/per-CPU, add test_progs tests.
Changes in patch 2:
v7: No change.
v6: Add Acked-by.
v5: Move to the newest libbpf version (0.4.0).
Changes in patch 3:
v7: Remove ASSERT_GE macro which is already added in some other commit,
change ASSERT_OK to ASSERT_OK_PTR, add Acked-by.
v6: Remove PERCPU macros, add ASSERT_GE macro to test_progs.h, remove
leftover code.
v5: Use more appropriate macros. Better check for changed value.
====================
Signed-off-by:
Andrii Nakryiko <andrii@kernel.org>
No related branches found
No related tags found
Showing
- include/linux/bpf.h 2 additions, 0 deletionsinclude/linux/bpf.h
- include/uapi/linux/bpf.h 13 additions, 0 deletionsinclude/uapi/linux/bpf.h
- kernel/bpf/hashtab.c 98 additions, 0 deletionskernel/bpf/hashtab.c
- kernel/bpf/syscall.c 30 additions, 4 deletionskernel/bpf/syscall.c
- tools/include/uapi/linux/bpf.h 13 additions, 0 deletionstools/include/uapi/linux/bpf.h
- tools/lib/bpf/bpf.c 13 additions, 0 deletionstools/lib/bpf/bpf.c
- tools/lib/bpf/bpf.h 2 additions, 0 deletionstools/lib/bpf/bpf.h
- tools/lib/bpf/libbpf.map 1 addition, 0 deletionstools/lib/bpf/libbpf.map
- tools/testing/selftests/bpf/prog_tests/lookup_and_delete.c 288 additions, 0 deletionstools/testing/selftests/bpf/prog_tests/lookup_and_delete.c
- tools/testing/selftests/bpf/progs/test_lookup_and_delete.c 26 additions, 0 deletionstools/testing/selftests/bpf/progs/test_lookup_and_delete.c
- tools/testing/selftests/bpf/test_lru_map.c 8 additions, 0 deletionstools/testing/selftests/bpf/test_lru_map.c
- tools/testing/selftests/bpf/test_maps.c 17 additions, 0 deletionstools/testing/selftests/bpf/test_maps.c
Loading
Please register or sign in to comment