]> git.baikalelectronics.ru Git - kernel.git/commit
wireguard: receive: drop handshakes if queue lock is contended
authorJason A. Donenfeld <Jason@zx2c4.com>
Mon, 29 Nov 2021 15:39:27 +0000 (10:39 -0500)
committerJakub Kicinski <kuba@kernel.org>
Tue, 30 Nov 2021 03:50:50 +0000 (19:50 -0800)
commitce1c32774fdd2a9c40d1183cae4963bfb77c5289
tree4a8a4e6986fc0c2cbde645372048c231591d8a95
parent8ab51af1e9d918c2e35cbf9fc6aaadb36caed24b
wireguard: receive: drop handshakes if queue lock is contended

If we're being delivered packets from multiple CPUs so quickly that the
ring lock is contended for CPU tries, then it's safe to assume that the
queue is near capacity anyway, so just drop the packet rather than
spinning. This helps deal with multicore DoS that can interfere with
data path performance. It _still_ does not completely fix the issue, but
it again chips away at it.

Reported-by: Streun Fabio <fstreun@student.ethz.ch>
Fixes: 0c73bbc77a76 ("net: WireGuard secure network tunnel")
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/wireguard/receive.c