First patch tries to remove kzalloc/kfree from getsockopt for the common cases. Second patch switches cgroup_bpf_enabled to be per-attach to to add only overhead for the cgroup attach types used on the system. No visible user-side changes. v3: - remove extra newline, add comment about sizeof tcp_zerocopy_receive (Martin KaFai Lau) - add another patch to remove lock_sock overhead from TCP_ZEROCOPY_RECEIVE; technically, this makes patch #1 obsolete, but I'd still prefer to keep it to help with other socket options v2: - perf numbers for getsockopt kmalloc reduction (Song Liu) - (sk) in BPF_CGROUP_PRE_CONNECT_ENABLED (Song Liu) - 128 -> 64 buffer size, BUILD_BUG_ON (Martin KaFai Lau) Stanislav Fomichev (3): bpf: try to avoid kzalloc in cgroup/{s,g}etsockopt bpf: split cgroup_bpf_enabled per attach type bpf: remove extra lock_sock for TCP_ZEROCOPY_RECEIVE include/linux/bpf-cgroup.h | 52 ++++--- include/linux/filter.h | 5 + kernel/bpf/cgroup.c | 132 +++++++++++++++--- net/ipv4/af_inet.c | 9 +- net/ipv4/tcp.c | 2 + net/ipv4/udp.c | 7 +- net/ipv6/af_inet6.c | 9 +- net/ipv6/udp.c | 7 +- .../selftests/bpf/prog_tests/sockopt_sk.c | 22 +++ .../testing/selftests/bpf/progs/sockopt_sk.c | 15 ++ 10 files changed, 205 insertions(+), 55 deletions(-) -- 2.29.2.729.g45daf8777d-goog