mainlining shenanigans
Go to file
Kuniyuki Iwashima efc6b6f6c3 udp: Improve load balancing for SO_REUSEPORT.
Currently, SO_REUSEPORT does not work well if connected sockets are in a
UDP reuseport group.

Then reuseport_has_conns() returns true and the result of
reuseport_select_sock() is discarded. Also, unconnected sockets have the
same score, hence only does the first unconnected socket in udp_hslot
always receive all packets sent to unconnected sockets.

So, the result of reuseport_select_sock() should be used for load
balancing.

The noteworthy point is that the unconnected sockets placed after
connected sockets in sock_reuseport.socks will receive more packets than
others because of the algorithm in reuseport_select_sock().

    index | connected | reciprocal_scale | result
    ---------------------------------------------
    0     | no        | 20%              | 40%
    1     | no        | 20%              | 20%
    2     | yes       | 20%              | 0%
    3     | no        | 20%              | 40%
    4     | yes       | 20%              | 0%

If most of the sockets are connected, this can be a problem, but it still
works better than now.

Fixes: acdcecc612 ("udp: correct reuseport selection with connected sockets")
CC: Willem de Bruijn <willemb@google.com>
Reviewed-by: Benjamin Herrenschmidt <benh@amazon.com>
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.co.jp>
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-07-21 15:31:02 -07:00
arch arm64: dts: clearfog-gt-8k: fix switch link configuration 2020-07-19 18:11:10 -07:00
block block-5.8-2020-07-10 2020-07-10 09:55:46 -07:00
certs
crypto
Documentation Documentation: bareudp: update iproute2 sample commands 2020-07-20 17:57:20 -07:00
drivers net: neterion: vxge: reduce stack usage in VXGE_COMPLETE_VPATH_TX 2020-07-20 18:38:27 -07:00
fs 4 cifs/smb3 fixes: the three for stable fix problems found recently with change notification including a reference count leak 2020-07-10 21:16:48 -07:00
include rhashtable: drop duplicated word in <linux/rhashtable.h> 2020-07-17 18:34:18 -07:00
init
ipc
kernel Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-07-10 18:16:22 -07:00
lib Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-07-10 18:16:22 -07:00
LICENSES
mm Fix gfs2 readahead deadlocks 2020-07-10 08:53:21 -07:00
net udp: Improve load balancing for SO_REUSEPORT. 2020-07-21 15:31:02 -07:00
samples
scripts kbuild: Move -Wtype-limits to W=2 2020-07-09 18:00:56 -07:00
security integrity/ima: switch to using __kernel_read 2020-07-08 08:27:57 +02:00
sound sound fixes for 5.8-rc5 2020-07-08 11:07:09 -07:00
tools selftests: net: ip_defrag: modprobe missing nf_defrag_ipv6 support 2020-07-17 12:49:18 -07:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap MAINTAINERS: update email address for Gerald Schaefer 2020-07-10 15:06:49 +02:00
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-07-10 18:16:22 -07:00
Makefile
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.