SUNRPC: Optimize xdr_reserve_space()
authorChuck Lever <chuck.lever@oracle.com>
Tue, 7 Jun 2022 20:47:58 +0000 (16:47 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Wed, 8 Jun 2022 16:39:37 +0000 (12:39 -0400)
commit62ed448cc53b654036f7d7f3c99f299d79ad14c3
tree8c239a47853628dff53a3829221b00baa6220910
parent6c254bf3b637dd4ef4f78eb78c7447419c0161d7
SUNRPC: Optimize xdr_reserve_space()

Transitioning between encode buffers is quite infrequent. It happens
about 1 time in 400 calls to xdr_reserve_space(), measured on NFSD
with a typical build/test workload.

Force the compiler to remove that code from xdr_reserve_space(),
which is a hot path on both the server and the client. This change
reduces the size of xdr_reserve_space() from 10 cache lines to 2
when compiled with -Os.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: J. Bruce Fields <bfields@fieldses.org>
include/linux/sunrpc/xdr.h
net/sunrpc/xdr.c