[PATCH 0/3] locking/static_key: improve rate limited labels

From: Jakub Kicinski
Date: Fri Mar 29 2019 - 20:09:09 EST


Hi!

This will be used to fix the static branch disabling in the TLS
code. The net/tls/ code should be using the deferred static
branch type, because unprivileged users can flip the branch
on and off quite easily with CONFIG_TLS_DEVICE=y.

Second of all we shouldn't take the jump label locks from
the RX path, when the socket is destroyed. This can be avoided
with some slight code refactoring in deferred static_key as
it already runs from a workqueue.

This the series (and a simple tls patch which makes use of it)
applied opening 0.5M TLS connections to localhost (just calling
setsockopt, no data exchange) goes down from 37.9s to 12.4s.

Jakub Kicinski (3):
locking/static_key: add support for deferred static branches
locking/static_key: factor out the fast path of static_key_slow_dec()
locking/static_key: don't take sleeping locks in
__static_key_slow_dec_deferred()

include/linux/jump_label_ratelimit.h | 64 ++++++++++++++++++++++++++--
kernel/jump_label.c | 64 +++++++++++++++-------------
2 files changed, 95 insertions(+), 33 deletions(-)

--
2.21.0