Currently, userspace programs have to update the values of all CPUs at once when updating per-cpu maps. This limitation prevents the update of a single CPU's value without the risk of missing concurrent updates on other CPU's values. The first patch allows userspace to update the value of a specific CPU in per-cpu maps. The second and last patches add test cases and support in bpftool respectively. Paul Chaignon (3): bpf: Single-cpu updates for per-cpu maps selftests/bpf: Tests for single-cpu updates of per-cpu maps bpftool: Support single-cpu updates for per-cpu maps include/uapi/linux/bpf.h | 4 ++ kernel/bpf/arraymap.c | 19 +++-- kernel/bpf/hashtab.c | 49 +++++++------ kernel/bpf/local_storage.c | 16 +++-- kernel/bpf/syscall.c | 17 +++-- .../bpf/bpftool/Documentation/bpftool-map.rst | 13 ++-- tools/bpf/bpftool/bash-completion/bpftool | 2 +- tools/bpf/bpftool/map.c | 70 ++++++++++++++----- tools/include/uapi/linux/bpf.h | 4 ++ tools/testing/selftests/bpf/test_maps.c | 34 ++++++++- 10 files changed, 168 insertions(+), 60 deletions(-) -- 2.24.0