linux-stable/net
Dust Li 046b0c703d net/smc: correct settings of RMB window update limit
[ Upstream commit 6bf536eb5c ]

rmbe_update_limit is used to limit announcing receive
window updating too frequently. RFC7609 request a minimal
increase in the window size of 10% of the receive buffer
space. But current implementation used:

  min_t(int, rmbe_size / 10, SOCK_MIN_SNDBUF / 2)

and SOCK_MIN_SNDBUF / 2 == 2304 Bytes, which is almost
always less then 10% of the receive buffer space.

This causes the receiver always sending CDC message to
update its consumer cursor when it consumes more then 2K
of data. And as a result, we may encounter something like
"TCP silly window syndrome" when sending 2.5~8K message.

This patch fixes this using max(rmbe_size / 10, SOCK_MIN_SNDBUF / 2).

With this patch and SMC autocorking enabled, qperf 2K/4K/8K
tcp_bw test shows 45%/75%/40% increase in throughput respectively.

Signed-off-by: Dust Li <dust.li@linux.alibaba.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-04-13 19:27:19 +02:00
..
6lowpan
9p xen/9p: use alloc/free_pages_exact() 2022-03-07 09:48:55 +01:00
802
8021q vlan: move dev_put into vlan_dev_uninit 2022-02-09 13:33:39 +00:00
appletalk
atm proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
ax25 ax25: fix UAF bug in ax25_send_control() 2022-04-08 13:58:59 +02:00
batman-adv ipv6: make mc_forwarding atomic 2022-04-13 19:27:12 +02:00
bluetooth Bluetooth: hci_sync: Fix queuing commands when HCI_UNREGISTER is set 2022-04-13 19:27:09 +02:00
bpf
bpfilter
bridge net: bridge: multicast: notify switchdev driver whenever MC processing gets disabled 2022-02-16 20:35:00 -08:00
caif Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-12-31 14:35:40 +00:00
can can: isotp: restore accidentally removed MSG_PEEK feature 2022-04-08 13:58:58 +02:00
ceph libceph: optionally use bounce buffer on recv path in crc mode 2022-02-02 18:50:36 +01:00
core net: initialize init_net earlier 2022-04-13 19:27:12 +02:00
dcb net: dcb: disable softirqs in dcbnl_flush_dev() 2022-03-03 08:01:55 -08:00
dccp
decnet Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-12-31 14:35:40 +00:00
dns_resolver
dsa net: dsa: fix panic on shutdown if multi-chip tree failed to probe 2022-04-08 13:58:22 +02:00
ethernet
ethtool ethtool: use phydev variable 2022-01-06 12:33:35 +00:00
hsr
ieee802154 net: ieee802154: Return meaningful error codes from the netlink helpers 2022-01-27 08:20:47 +01:00
ife
ipv4 ipv4: Invalidate neighbour for broadcast address upon address addition 2022-04-13 19:27:16 +02:00
ipv6 ipv6: annotate some data-races around sk->sk_prot 2022-04-13 19:27:16 +02:00
iucv net: Don't include filter.h from net/sock.h 2021-12-29 08:48:14 -08:00
kcm net: Don't include filter.h from net/sock.h 2021-12-29 08:48:14 -08:00
key af_key: add __GFP_ZERO flag for compose_sadb_supported in function pfkey_register 2022-03-10 07:39:47 +01:00
l2tp
l3mdev
lapb
llc llc: only change llc->dev when bind() succeeds 2022-03-28 10:03:22 +02:00
mac80211 mac80211: limit bandwidth in HE capabilities 2022-04-08 13:58:03 +02:00
mac802154
mctp mctp: make __mctp_dev_get() take a refcount hold 2022-04-13 19:27:18 +02:00
mpls net: mpls: Fix GCC 12 warning 2022-02-10 15:29:39 +00:00
mptcp mptcp: Fix crash due to tcp_tsorted_anchor was initialized before release skb 2022-04-08 13:58:21 +02:00
ncsi all: replace find_next{,_zero}_bit with find_first{,_zero}_bit where appropriate 2022-01-15 08:47:31 -08:00
netfilter netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options 2022-04-08 13:58:31 +02:00
netlabel
netlink af_netlink: Fix shift out of bounds in group mask calculation 2022-04-08 13:58:21 +02:00
netrom netrom: fix api breakage in nr_setsockopt() 2022-01-07 14:11:05 +00:00
nfc Networking fixes for 5.17-rc1, including fixes from netfilter, bpf. 2022-01-20 10:57:05 +02:00
nsh
openvswitch openvswitch: Fixed nd target mask field in the flow dump. 2022-04-08 13:59:03 +02:00
packet net/packet: fix slab-out-of-bounds access in packet_recvmsg() 2022-03-14 22:08:34 -07:00
phonet
psample
qrtr
rds
rfkill rfkill: make new event layout opt-in 2022-04-08 13:57:27 +02:00
rose net: Don't include filter.h from net/sock.h 2021-12-29 08:48:14 -08:00
rxrpc rxrpc: Fix call timer start racing with call destruction 2022-04-08 13:58:55 +02:00
sched net/sched: act_ct: fix ref leak when switching zones 2022-04-08 13:58:35 +02:00
sctp security: add sctp_assoc_established hook 2022-04-08 13:57:34 +02:00
smc net/smc: correct settings of RMB window update limit 2022-04-13 19:27:19 +02:00
strparser
sunrpc SUNRPC don't resend a task on an offlined transport 2022-04-08 13:58:31 +02:00
switchdev
tipc tipc: fix the timer expires after interval 100ms 2022-04-08 13:58:22 +02:00
tls net/tls: Fix another skb memory leak when running kTLS traffic 2022-01-17 13:07:47 +00:00
unix af_unix: Support POLLPRI for OOB. 2022-04-08 13:59:00 +02:00
vmw_vsock vsock/virtio: enable VQs early on probe 2022-04-08 13:58:32 +02:00
wireless cfg80211: don't add non transmitted BSS to 6GHz scanned channels 2022-04-13 19:27:11 +02:00
x25 net/x25: Fix null-ptr-deref caused by x25_disconnect 2022-04-08 13:58:34 +02:00
xdp xsk: Do not write NULL in SW ring at allocation failure 2022-04-08 13:59:03 +02:00
xfrm Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0" 2022-03-06 08:38:28 +01:00
compat.c
devres.c
Kconfig
Kconfig.debug
Makefile
socket.c net: fix documentation for kernel_getsockname 2022-02-14 14:01:19 +00:00
sysctl_net.c