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(-)