]> www.infradead.org Git - users/dwmw2/linux.git/commit
bpf: Add open coded version of kmem_cache iterator
authorNamhyung Kim <namhyung@kernel.org>
Wed, 30 Oct 2024 22:28:18 +0000 (15:28 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 1 Nov 2024 18:08:32 +0000 (11:08 -0700)
commit2e9a548009c2d804e55cdd5b0e9903756cf7d9b3
treefed0fee837e2a98507d9d178e122b99a40863fec
parente626a13f6fbb4697f8734333432dca577628d09a
bpf: Add open coded version of kmem_cache iterator

Add a new open coded iterator for kmem_cache which can be called from a
BPF program like below.  It doesn't take any argument and traverses all
kmem_cache entries.

  struct kmem_cache *pos;

  bpf_for_each(kmem_cache, pos) {
      ...
  }

As it needs to grab slab_mutex, it should be called from sleepable BPF
programs only.

Also update the existing iterator code to use the open coded version
internally as suggested by Andrii.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20241030222819.1800667-1-namhyung@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/helpers.c
kernel/bpf/kmem_cache_iter.c