[PATCH net 0/7] rxrpc, afs: Fix probing issues

From: David Howells
Date: Thu Aug 27 2020 - 11:09:05 EST



Here are some fixes for rxrpc and afs to fix issues in the RTT measuring in
rxrpc and thence the Volume Location server probing in afs:

(1) Move the serial number of a received ACK into a local variable to
simplify the next patch.

(2) Fix the loss of RTT samples due to extra interposed ACKs causing
baseline information to be discarded too early. This is a particular
problem for afs when it sends a single very short call to probe a
server it hasn't talked to recently.

(3) Fix rxrpc_kernel_get_srtt() to indicate whether it actually has seen
any valid samples or not.

(4) Remove a field that's set/woken, but never read/waited on.

(5) Expose the RTT and other probe information through procfs to make
debugging of this stuff easier.

(6) Fix VL rotation in afs to only use summary information from VL probing
and not the probe running state (which gets clobbered when next a
probe is issued).

(7) Fix VL rotation to actually return the error aggregated from the probe
errors.

The patches are tagged here:

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

and can also be found on the following branch:

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

David
---
David Howells (7):
rxrpc: Keep the ACK serial in a var in rxrpc_input_ack()
rxrpc: Fix loss of RTT samples due to interposed ACK
rxrpc: Make rxrpc_kernel_get_srtt() indicate validity
afs: Remove afs_vlserver->probe.have_result
afs: Expose information from afs_vlserver through /proc for debugging
afs: Don't use VL probe running state to make decisions outside probe code
afs: Fix error handling in VL server rotation


fs/afs/fs_probe.c | 4 +-
fs/afs/internal.h | 14 +++--
fs/afs/proc.c | 5 ++
fs/afs/vl_list.c | 1 +
fs/afs/vl_probe.c | 82 ++++++++++++++++-----------
fs/afs/vl_rotate.c | 7 ++-
include/net/af_rxrpc.h | 2 +-
include/trace/events/rxrpc.h | 27 +++++++--
net/rxrpc/ar-internal.h | 13 +++--
net/rxrpc/call_object.c | 1 +
net/rxrpc/input.c | 104 ++++++++++++++++++++---------------
net/rxrpc/output.c | 82 ++++++++++++++++++++-------
net/rxrpc/peer_object.c | 16 +++++-
net/rxrpc/rtt.c | 3 +-
14 files changed, 241 insertions(+), 120 deletions(-)