All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 bpf-next 0/3] Add lookup_and_delete_elem support to BPF hash map types
@ 2021-05-11 21:00 Denis Salopek
  2021-05-11 21:00 ` [PATCH v7 bpf-next 1/3] bpf: add lookup_and_delete_elem support to hashtab Denis Salopek
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Denis Salopek @ 2021-05-11 21:00 UTC (permalink / raw)
  To: bpf
  Cc: Denis Salopek, Juraj Vijtiuk, Luka Oreskovic, Luka Perkov,
	Yonghong Song, Andrii Nakryiko, Daniel Borkmann

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.

Denis Salopek (3):
  bpf: add lookup_and_delete_elem support to hashtab
  bpf: extend libbpf with bpf_map_lookup_and_delete_elem_flags
  selftests/bpf: add bpf_lookup_and_delete_elem tests

 include/linux/bpf.h                           |   2 +
 include/uapi/linux/bpf.h                      |  13 +
 kernel/bpf/hashtab.c                          |  98 ++++++
 kernel/bpf/syscall.c                          |  34 ++-
 tools/include/uapi/linux/bpf.h                |  13 +
 tools/lib/bpf/bpf.c                           |  13 +
 tools/lib/bpf/bpf.h                           |   2 +
 tools/lib/bpf/libbpf.map                      |   1 +
 .../bpf/prog_tests/lookup_and_delete.c        | 288 ++++++++++++++++++
 .../bpf/progs/test_lookup_and_delete.c        |  26 ++
 tools/testing/selftests/bpf/test_lru_map.c    |   8 +
 tools/testing/selftests/bpf/test_maps.c       |  17 ++
 12 files changed, 511 insertions(+), 4 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/prog_tests/lookup_and_delete.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_lookup_and_delete.c

-- 
2.26.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-08-06 21:42 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-11 21:00 [PATCH v7 bpf-next 0/3] Add lookup_and_delete_elem support to BPF hash map types Denis Salopek
2021-05-11 21:00 ` [PATCH v7 bpf-next 1/3] bpf: add lookup_and_delete_elem support to hashtab Denis Salopek
2021-05-11 21:00 ` [PATCH v7 bpf-next 2/3] bpf: extend libbpf with bpf_map_lookup_and_delete_elem_flags Denis Salopek
2021-05-11 21:00 ` [PATCH v7 bpf-next 3/3] selftests/bpf: add bpf_lookup_and_delete_elem tests Denis Salopek
2021-05-24 22:02 ` [PATCH v7 bpf-next 0/3] Add lookup_and_delete_elem support to BPF hash map types Andrii Nakryiko
2021-07-27 18:10   ` Andrii Nakryiko
2021-08-03 20:27     ` Andrii Nakryiko
2021-08-06 11:29     ` Denis Salopek
2021-08-06 21:42       ` Andrii Nakryiko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.