SUNRPC: receive buffer size estimation values almost never change
authorChuck Lever <chuck.lever@oracle.com>
Tue, 12 May 2020 21:13:01 +0000 (17:13 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 11 Jun 2020 17:33:47 +0000 (13:33 -0400)
commit53bc19f17f21738735706fabcae3070f16c833db
tree6c41ff5ea252d629a3293b09822c7d19c3cd730b
parentef31d878b2e7856cb5d2f76f14b37f4b834eb0f3
SUNRPC: receive buffer size estimation values almost never change

Avoid unnecessary cache sloshing by placing the buffer size
estimation update logic behind an atomic bit flag.

The size of GSS information included in each wrapped Reply does
not change during the lifetime of a GSS context. Therefore, the
au_rslack and au_ralign fields need to be updated only once after
establishing a fresh GSS credential.

Thus a slack size update must occur after a cred is created,
duplicated, renewed, or expires. I'm not sure I have this exactly
right. A trace point is introduced to track updates to these
variables to enable troubleshooting the problem if I missed a spot.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
include/linux/sunrpc/auth.h
include/trace/events/rpcgss.h
net/sunrpc/auth_gss/auth_gss.c
net/sunrpc/xprtrdma/rpc_rdma.c