mbox series

[bpf-next,0/6] bpf: Fixes for per-cpu kptr

Message ID 20231007135106.3031284-1-houtao@huaweicloud.com (mailing list archive)
Headers show
Series bpf: Fixes for per-cpu kptr | expand

Message

Hou Tao Oct. 7, 2023, 1:51 p.m. UTC
From: Hou Tao <houtao1@huawei.com>

Hi,

The patchset aims to fix the problems found in the review of per-cpu
kptr patch-set [0]. Patch #1 introduces alloc_size_percpu() for dynamic
per-cpu area. Patch #2 and #3 use alloc_size_percpu() to check
whether or not unit_size matches with the size of underlying per-cpu
area and to select a matching bpf_mem_cache. Patch #4 fixes the freeing
of per-cpu kptr when these kptr is freed by map destruction. The last
patch adds test cases for these problems.

Please see individual patches for details. And comments are always
welcome.

[0]: https://lore.kernel.org/bpf/20230827152729.1995219-1-yonghong.song@linux.dev

Hou Tao (6):
  mm/percpu.c: introduce alloc_size_percpu()
  bpf: Re-enable unit_size checking for global per-cpu allocator
  bpf: Use alloc_size_percpu() in bpf_mem_free{_rcu}()
  bpf: Move the declaration of __bpf_obj_drop_impl() to internal.h
  bpf: Use bpf_global_percpu_ma for per-cpu kptr in
    __bpf_obj_drop_impl()
  selftests/bpf: Add more test cases for bpf memory allocator

 include/linux/bpf_mem_alloc.h                 |   1 +
 include/linux/percpu.h                        |   1 +
 kernel/bpf/helpers.c                          |  25 ++-
 kernel/bpf/internal.h                         |  11 ++
 kernel/bpf/memalloc.c                         |  41 ++--
 kernel/bpf/syscall.c                          |   8 +-
 mm/percpu.c                                   |  29 +++
 .../selftests/bpf/prog_tests/test_bpf_ma.c    |  20 +-
 .../testing/selftests/bpf/progs/test_bpf_ma.c | 180 +++++++++++++++++-
 9 files changed, 282 insertions(+), 34 deletions(-)
 create mode 100644 kernel/bpf/internal.h