diff options
author | 2023-03-16 00:40:27 -0500 | |
---|---|---|
committer | 2023-03-16 12:28:30 -0700 | |
commit | 1b403ce77dfbf234723a91bc411dfb03a0499d6e (patch) | |
tree | 70cccb7975e4427ef8217c03e426036660e02d09 /tools/lib/bpf/bpf_helpers.h | |
parent | bpf/selftests: Test using global cpumask kptr with RCU (diff) | |
download | wireguard-linux-1b403ce77dfbf234723a91bc411dfb03a0499d6e.tar.xz wireguard-linux-1b403ce77dfbf234723a91bc411dfb03a0499d6e.zip |
bpf: Remove bpf_cpumask_kptr_get() kfunc
Now that struct bpf_cpumask is RCU safe, there's no need for this kfunc.
Rather than doing the following:
private(MASK) static struct bpf_cpumask __kptr *global;
int BPF_PROG(prog, s32 cpu, ...)
{
struct bpf_cpumask *cpumask;
bpf_rcu_read_lock();
cpumask = bpf_cpumask_kptr_get(&global);
if (!cpumask) {
bpf_rcu_read_unlock();
return -1;
}
bpf_cpumask_setall(cpumask);
...
bpf_cpumask_release(cpumask);
bpf_rcu_read_unlock();
}
Programs can instead simply do (assume same global cpumask):
int BPF_PROG(prog, ...)
{
struct bpf_cpumask *cpumask;
bpf_rcu_read_lock();
cpumask = global;
if (!cpumask) {
bpf_rcu_read_unlock();
return -1;
}
bpf_cpumask_setall(cpumask);
...
bpf_rcu_read_unlock();
}
In other words, no extra atomic acquire / release, and less boilerplate
code.
This patch removes both the kfunc, as well as its selftests and
documentation.
Signed-off-by: David Vernet <void@manifault.com>
Link: https://lore.kernel.org/r/20230316054028.88924-5-void@manifault.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/lib/bpf/bpf_helpers.h')
0 files changed, 0 insertions, 0 deletions