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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Hou Tao <houtao1@xxxxxxxxxx>

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@xxxxxxxxx

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

-- 
2.29.2





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux