bpf: Change bpf_sk_storage_*() to accept ARG_PTR_TO_BTF_ID_SOCK_COMMON
authorMartin KaFai Lau <kafai@fb.com>
Fri, 25 Sep 2020 00:04:02 +0000 (17:04 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 25 Sep 2020 20:58:01 +0000 (13:58 -0700)
commit592a3498648af000e93dff2d36229ab11cd8c7f6
tree3b79eb23f44199dd73ae232950ed4d025a4bd8c5
parenta5fa25adf03d4b063aece74ba70ccbb3a71af122
bpf: Change bpf_sk_storage_*() to accept ARG_PTR_TO_BTF_ID_SOCK_COMMON

This patch changes the bpf_sk_storage_*() to take
ARG_PTR_TO_BTF_ID_SOCK_COMMON such that they will work with the pointer
returned by the bpf_skc_to_*() helpers also.

A micro benchmark has been done on a "cgroup_skb/egress" bpf program
which does a bpf_sk_storage_get().  It was driven by netperf doing
a 4096 connected UDP_STREAM test with 64bytes packet.
The stats from "kernel.bpf_stats_enabled" shows no meaningful difference.

The sk_storage_get_btf_proto, sk_storage_delete_btf_proto,
btf_sk_storage_get_proto, and btf_sk_storage_delete_proto are
no longer needed, so they are removed.

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Lorenz Bauer <lmb@cloudflare.com>
Link: https://lore.kernel.org/bpf/20200925000402.3856307-1-kafai@fb.com
include/net/bpf_sk_storage.h
include/uapi/linux/bpf.h
kernel/bpf/bpf_lsm.c
net/core/bpf_sk_storage.c
net/ipv4/bpf_tcp_ca.c
tools/include/uapi/linux/bpf.h