selftsets/bpf: Retry map update for non-preallocated per-cpu map
authorHou Tao <houtao1@huawei.com>
Wed, 1 Nov 2023 03:24:55 +0000 (11:24 +0800)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 10 Nov 2023 02:58:40 +0000 (18:58 -0800)
commit2f553b032cad4993969cab356b3b0e306fcd1cd1
tree989e0be5c06e56cf68317fbd3614ed9e2423d5b2
parentb9b79553163788d3fc42e25c2662c0a46dc9a3c5
selftsets/bpf: Retry map update for non-preallocated per-cpu map

BPF CI failed due to map_percpu_stats_percpu_hash from time to time [1].
It seems that the failure reason is per-cpu bpf memory allocator may not
be able to allocate per-cpu pointer successfully and it can not refill
free llist timely, and bpf_map_update_elem() will return -ENOMEM.

So mitigate the problem by retrying the update operation for
non-preallocated per-cpu map.

[1]: https://github.com/kernel-patches/bpf/actions/runs/6713177520/job/18244865326?pr=5909

Signed-off-by: Hou Tao <houtao1@huawei.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20231101032455.3808547-4-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/map_tests/map_percpu_stats.c