linux/net/sunrpc
Chuck Lever 237563f7d0 SUNRPC: Address Kerberos performance/behavior regression
[ Upstream commit deaa5c96c2 ]

When using Kerberos with v4.20, I've observed frequent connection
loss on heavy workloads. I traced it down to the client underrunning
the GSS sequence number window -- NFS servers are required to drop
the RPC with the low sequence number, and also drop the connection
to signal that an RPC was dropped.

Bisected to commit 918f3c1fe8 ("SUNRPC: Improve latency for
interactive tasks").

I've got a one-line workaround for this issue, which is easy to
backport to v4.20 while a more permanent solution is being derived.
Essentially, tk_owner-based sorting is disabled for RPCs that carry
a GSS sequence number.

Fixes: 918f3c1fe8 ("SUNRPC: Improve latency for interactive ... ")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2019-01-31 08:15:35 +01:00
..
auth_gss sunrpc: use SVC_NET() in svcauth_gss_* functions 2019-01-13 09:24:03 +01:00
xprtrdma xprtrdma: Yet another double DMA-unmap 2019-01-13 09:24:07 +01:00
addr.c replace strict_strto calls 2014-07-12 18:45:49 -04:00
auth.c SUNRPC: Convert the auth cred cache to use refcount_t 2018-10-23 12:24:33 -04:00
auth_generic.c SUNRPC: Fix a bogus get/put in generic_key_to_expire() 2018-11-12 16:39:13 -05:00
auth_null.c SUNRPC: Convert the auth cred cache to use refcount_t 2018-10-23 12:24:33 -04:00
auth_unix.c SUNRPC: Convert the auth cred cache to use refcount_t 2018-10-23 12:24:33 -04:00
backchannel_rqst.c SUNRPC: Refactor xprt_transmit() to remove the reply queue code 2018-09-30 15:35:14 -04:00
cache.c sunrpc: fix cache_head leak due to queued request 2019-01-13 09:24:03 +01:00
clnt.c SUNRPC: Fix disconnection races 2018-12-18 11:03:57 -05:00
debugfs.c net: Use octal not symbolic permissions 2018-03-26 12:07:48 -04:00
Kconfig IB: Revert "remove redundant INFINIBAND kconfig dependencies" 2018-05-28 10:40:16 -06:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
netns.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rpc_pipe.c Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-06-04 10:14:28 -07:00
rpcb_clnt.c sunrpc: handle ENOMEM in rpcb_getport_async 2019-01-22 21:09:56 +01:00
sched.c SUNRPC: Fix priority queue fairness 2018-09-30 15:35:16 -04:00
socklib.c SUNRPC: Unexport xdr_partial_copy_from_skb() 2018-09-30 15:35:16 -04:00
stats.c sunrpc: whitespace fixes 2018-07-31 12:53:40 -04:00
sunrpc.h sunrpc: whitespace fixes 2018-07-31 12:53:40 -04:00
sunrpc_syms.c net: Drop pernet_operations::async 2018-03-27 13:18:09 -04:00
svc.c sunrpc: use-after-free in svc_process_common() 2019-01-16 22:03:26 +01:00
svc_xprt.c sunrpc: use-after-free in svc_process_common() 2019-01-16 22:03:26 +01:00
svcauth.c SUNRPC: Add lockless lookup of the server's auth domain 2018-10-03 11:32:59 -04:00
svcauth_unix.c SUNRPC: Make server side AUTH_UNIX use lockless lookups 2018-10-29 16:58:04 -04:00
svcsock.c sunrpc: use-after-free in svc_process_common() 2019-01-16 22:03:26 +01:00
sysctl.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
timer.c net: cleanup unsigned to unsigned int 2012-04-15 12:44:40 -04:00
xdr.c SUNRPC: drop pointless static qualifier in xdr_get_next_encode_buffer() 2018-11-08 12:12:23 -05:00
xprt.c SUNRPC: Address Kerberos performance/behavior regression 2019-01-31 08:15:35 +01:00
xprtmultipath.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xprtsock.c SUNRPC: Fix TCP receive code on archs with flush_dcache_page() 2019-01-22 21:09:54 +01:00