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