Stanislav Fomichev
9cacf81f81
bpf: Remove extra lock_sock for TCP_ZEROCOPY_RECEIVE
...
Add custom implementation of getsockopt hook for TCP_ZEROCOPY_RECEIVE.
We skip generic hooks for TCP_ZEROCOPY_RECEIVE and have a custom
call in do_tcp_getsockopt using the on-stack data. This removes
3% overhead for locking/unlocking the socket.
Without this patch:
3.38% 0.07% tcp_mmap [kernel.kallsyms] [k] __cgroup_bpf_run_filter_getsockopt
|
--3.30%--__cgroup_bpf_run_filter_getsockopt
|
--0.81%--__kmalloc
With the patch applied:
0.52% 0.12% tcp_mmap [kernel.kallsyms] [k] __cgroup_bpf_run_filter_getsockopt_kern
Note, exporting uapi/tcp.h requires removing netinet/tcp.h
from test_progs.h because those headers have confliciting
definitions.
Signed-off-by: Stanislav Fomichev <sdf@google.com >
Signed-off-by: Alexei Starovoitov <ast@kernel.org >
Acked-by: Martin KaFai Lau <kafai@fb.com >
Link: https://lore.kernel.org/bpf/20210115163501.805133-2-sdf@google.com
2021-01-20 14:23:00 -08:00
..
2021-01-20 14:23:00 -08:00
2020-12-28 11:16:38 -08:00
2021-01-06 17:39:38 +01:00
2020-11-24 16:47:49 +01:00
2020-12-22 13:19:43 -08:00
2020-12-14 18:35:53 -08:00
2021-01-14 19:29:58 -08:00
2020-12-15 22:46:18 -08:00
2020-12-25 11:02:39 -08:00
2020-11-06 17:19:26 -08:00
2020-11-13 12:15:28 -05:00
2020-12-14 17:27:47 -08:00
2020-12-15 16:30:31 -08:00
2020-12-16 10:45:11 -08:00
2021-01-04 10:55:19 -08:00
2020-12-27 09:00:47 -08:00
2020-12-27 09:03:41 -08:00
2021-01-11 16:09:53 -05:00
2020-03-25 11:50:48 +01:00
2020-12-15 22:46:15 -08:00
2020-07-16 12:35:15 -07:00
2020-12-03 14:58:35 +01:00
2020-12-03 14:58:35 +01:00
2020-12-03 14:58:35 +01:00
2020-12-02 22:52:16 -05:00
2020-08-17 20:26:58 -04:00
2020-08-23 17:36:59 -05:00
2020-12-16 10:54:03 -08:00
2020-07-30 11:15:58 -07:00
2020-10-13 09:17:34 -07:00
2020-08-23 17:36:59 -05:00
2020-06-11 15:14:36 +02:00
2020-09-01 09:58:03 +02:00
2020-12-14 18:29:11 -08:00
2020-12-15 22:46:18 -08:00
2020-04-15 11:21:54 +02:00
2020-05-20 14:44:21 -05:00
2020-12-30 19:36:54 -07:00
2020-04-07 10:43:42 -07:00
2020-12-15 22:46:19 -08:00
2020-12-22 12:55:06 -08:00
2020-12-09 17:08:45 +01:00
2020-06-06 23:42:01 +09:00
2020-10-13 09:17:34 -07:00
2020-11-02 12:14:19 -08:00
2020-11-24 16:47:49 +01:00
2020-12-18 16:53:12 +01:00
2020-10-25 14:51:49 -07:00
2020-12-15 19:36:48 -08:00
2020-11-02 18:00:20 -08:00
2020-11-20 14:45:33 +11:00
2020-11-20 14:45:33 +11:00
2020-10-05 13:37:03 +02:00
2020-08-12 10:58:01 -07:00
2020-11-07 13:18:49 +01:00
2020-12-15 12:53:37 -08:00
2020-04-27 02:07:40 -04:00
2020-12-15 22:46:19 -08:00
2020-12-17 13:01:31 -08:00
2020-09-01 09:58:03 +02:00
2020-12-14 16:40:27 -08:00
2020-09-04 17:51:55 +10:00
2020-11-14 11:26:04 -08:00
2020-12-17 13:01:31 -08:00
2020-12-14 16:40:27 -08:00
2020-12-15 19:36:48 -08:00
2020-12-15 12:53:37 -08:00
2020-10-16 11:11:19 -07:00
2020-12-15 22:46:19 -08:00
2020-07-27 14:31:12 -04:00
2020-12-15 22:46:18 -08:00
2020-11-25 18:52:35 +01:00
2020-12-15 22:46:18 -08:00
2020-11-06 17:13:56 -08:00
2020-12-01 10:30:28 +00:00
2020-12-16 11:30:10 -08:00
2021-01-08 09:14:21 -07:00
2020-11-27 11:10:50 +01:00
2020-12-27 09:06:10 -08:00
2020-09-19 13:13:39 -07:00
2020-09-18 14:24:16 +01:00
2020-10-02 21:18:25 +02:00
2020-11-27 11:10:50 +01:00
2020-12-19 11:18:38 -08:00
2020-12-02 15:07:56 +01:00
2020-11-19 19:37:16 -08:00
2020-12-12 09:17:38 -07:00
2020-11-16 08:08:54 -08:00
2020-11-06 17:13:54 -08:00
2020-11-16 21:53:15 +01:00
2020-04-07 21:51:27 +02:00
2020-10-06 10:31:52 -07:00
2020-12-14 16:40:27 -08:00
2020-08-19 14:14:12 +02:00
2020-07-07 11:58:59 -05:00
2020-04-27 02:07:40 -04:00
2020-08-19 14:13:20 +02:00
2020-08-17 09:39:18 -07:00
2020-11-14 11:26:03 -08:00
2020-12-28 11:23:02 -08:00