lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 3 Apr 2022 14:06:12 +0100 From: Pavel Begunkov <asml.silence@...il.com> To: netdev@...r.kernel.org, "David S . Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org> Cc: Eric Dumazet <edumazet@...gle.com>, Wei Liu <wei.liu@...nel.org>, Paul Durrant <paul@....org>, Pavel Begunkov <asml.silence@...il.com> Subject: [RFC net-next 00/27] net and/or udp optimisations A mix of various net optimisations, which were mostly discovered during UDP testing. Benchmarked with an io_uring test using 16B UDP/IPv6 over dummy netdev: 2090K vs 2229K tx/s, +6.6%, or in a 4-8% range if not averaging across reboots. 1-3 removes extra atomics and barriers from sock_wfree() mainly benefitting UDP. 4-7 cleans up some zerocopy helpers 8-16 do inlining of ipv6 and generic net pathes 17 is a small nice performance improvement for TCP zerocopy 18-27 refactors UDP to shed some more overhead Pavel Begunkov (27): sock: deduplicate ->sk_wmem_alloc check sock: optimise sock_def_write_space send refcounting sock: optimise sock_def_write_space barriers skbuff: drop zero check from skb_zcopy_set skbuff: drop null check from skb_zcopy net: xen: set zc flags only when there is ubuf skbuff: introduce skb_is_zcopy() skbuff: optimise alloc_skb_with_frags() net: inline sock_alloc_send_skb net: inline part of skb_csum_hwoffload_help net: inline skb_zerocopy_iter_dgram ipv6: inline ip6_local_out() ipv6: help __ip6_finish_output() inlining ipv6: refactor ip6_finish_output2() net: inline dev_queue_xmit() ipv6: partially inline fl6_update_dst() tcp: optimise skb_zerocopy_iter_stream() net: optimise ipcm6 cookie init udp/ipv6: refactor udpv6_sendmsg udplite checks udp/ipv6: move pending section of udpv6_sendmsg udp/ipv6: prioritise the ip6 path over ip4 checks udp/ipv6: optimise udpv6_sendmsg() daddr checks udp/ipv6: optimise out daddr reassignment udp/ipv6: clean up udpv6_sendmsg's saddr init ipv6: refactor opts push in __ip6_make_skb() ipv6: improve opt-less __ip6_make_skb() ipv6: clean up ip6_setup_cork drivers/net/xen-netback/interface.c | 3 +- include/linux/netdevice.h | 27 ++++- include/linux/skbuff.h | 102 +++++++++++++----- include/net/ipv6.h | 37 ++++--- include/net/sock.h | 10 +- net/core/datagram.c | 2 - net/core/datagram.h | 15 --- net/core/dev.c | 28 ++--- net/core/skbuff.c | 59 ++++------- net/core/sock.c | 50 +++++++-- net/ipv4/ip_output.c | 10 +- net/ipv4/tcp.c | 5 +- net/ipv6/datagram.c | 4 +- net/ipv6/exthdrs.c | 15 ++- net/ipv6/ip6_output.c | 88 ++++++++-------- net/ipv6/output_core.c | 12 --- net/ipv6/raw.c | 8 +- net/ipv6/udp.c | 158 +++++++++++++--------------- net/l2tp/l2tp_ip6.c | 8 +- 19 files changed, 339 insertions(+), 302 deletions(-) delete mode 100644 net/core/datagram.h -- 2.35.1
Powered by blists - more mailing lists