[PATCH net-next 00/12] rxrpc: Fixes and improvements

From: David Howells
Date: Fri Nov 24 2017 - 09:37:45 EST



Hi David,

Is it too late for this to go to Linus in this merge window?

---

Here's a set of patches that fix and improve some stuff in the AF_RXRPC
protocol:

The patches are:

(1) Unlock mutex returned by rxrpc_accept_call().

(2) Don't set connection upgrade by default.

(3) Differentiate the call->user_mutex used by the kernel from that used
by userspace calling sendmsg() to avoid lockdep warnings.

(4) Delay terminal ACK transmission to a work queue so that it can be
replaced by the next call if there is one.

(5) Split the call parameters from the connection parameters so that more
call-specific parameters can be passed through.

(6) Fix the call timeouts to work the same as for other RxRPC/AFS
implementations.

(7) Don't transmit DELAY ACKs immediately, but instead delay them slightly
so that can be discarded or can represent more packets.

(8) Use RTT to calculate certain protocol timeouts.

(9) Add a timeout to detect lost ACK/DATA packets.

(10) Add a keepalive function so that we ping the peer if we haven't
transmitted for a short while, thereby keeping intervening firewall
routes open.

(11) Make service endpoints expire like they're supposed to so that the UDP
port can be reused.

(12) Fix connection expiry timers to make cleanup happen in a more timely
fashion.

The patches can be found here also:

http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-fixes

Tagged thusly:

git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
rxrpc-fixes-20171124

David
---
David Howells (12):
rxrpc: The mutex lock returned by rxrpc_accept_call() needs releasing
rxrpc: Don't set upgrade by default in sendmsg()
rxrpc: Provide a different lockdep key for call->user_mutex for kernel calls
rxrpc: Delay terminal ACK transmission on a client call
rxrpc: Split the call params from the operation params
rxrpc: Fix call timeouts
rxrpc: Don't transmit DELAY ACKs immediately on proposal
rxrpc: Express protocol timeouts in terms of RTT
rxrpc: Add a timeout for detecting lost ACKs/lost DATA
rxrpc: Add keepalive for a call
rxrpc: Fix service endpoint expiry
rxrpc: Fix conn expiry timers


include/trace/events/rxrpc.h | 86 ++++++++++++----
include/uapi/linux/rxrpc.h | 1
net/rxrpc/af_rxrpc.c | 23 ++++
net/rxrpc/ar-internal.h | 103 ++++++++++++++++---
net/rxrpc/call_accept.c | 2
net/rxrpc/call_event.c | 229 ++++++++++++++++++++++++------------------
net/rxrpc/call_object.c | 62 +++++++----
net/rxrpc/conn_client.c | 54 ++++++++--
net/rxrpc/conn_event.c | 74 +++++++++++---
net/rxrpc/conn_object.c | 76 +++++++++-----
net/rxrpc/input.c | 74 +++++++++++++-
net/rxrpc/misc.c | 19 +--
net/rxrpc/net_ns.c | 33 +++++-
net/rxrpc/output.c | 43 ++++++++
net/rxrpc/recvmsg.c | 12 +-
net/rxrpc/sendmsg.c | 126 ++++++++++++++---------
net/rxrpc/sysctl.c | 60 +++++------
17 files changed, 752 insertions(+), 325 deletions(-)