linux/net
Chuck Lever 2bea90d43a SUNRPC: RPC buffer size estimates are too large
The RPC buffer size estimation logic in net/sunrpc/clnt.c always
significantly overestimates the requirements for the buffer size.
A little instrumentation demonstrated that in fact rpc_malloc was never
allocating the buffer from the mempool, but almost always called kmalloc.

To compute the size of the RPC buffer more precisely, split p_bufsiz into
two fields; one for the argument size, and one for the result size.

Then, compute the sum of the exact call and reply header sizes, and split
the RPC buffer precisely between the two.  That should keep almost all RPC
buffers within the 2KiB buffer mempool limit.

And, we can finally be rid of RPC_SLACK_SPACE!

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2007-04-30 22:17:10 -07:00
..
802 [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
8021q [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
appletalk [NET]: Revert sk_buff walker cleanups. 2007-04-27 15:21:23 -07:00
atm [NET]: SPIN_LOCK_UNLOCKED cleanup in drivers/atm, net 2007-04-26 01:37:44 -07:00
ax25 [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
bluetooth [BLUETOOTH] rfcomm_worker(): fix wakeup race 2007-04-26 01:41:01 -07:00
bridge [BRIDGE]: Missing rtnl. 2007-04-25 22:30:04 -07:00
core [NET]: Remove NETIF_F_INTERNAL_STATS, default to internal stats. 2007-04-28 21:04:03 -07:00
dccp [NET]: SPIN_LOCK_UNLOCKED cleanup in drivers/atm, net 2007-04-26 01:37:44 -07:00
decnet [RTNETLINK]: Remove unnecessary locking in dump callbacks 2007-04-25 22:29:05 -07:00
econet [SK_BUFF]: Convert skb->tail to sk_buff_data_t 2007-04-25 22:26:28 -07:00
ethernet [SK_BUFF]: Introduce skb_reset_mac_header(skb) 2007-04-25 22:24:32 -07:00
ieee80211 [PATCH] ieee80211: add missing global needed by IEEE80211_DEBUG_XXXX 2007-04-28 11:01:05 -04:00
ipv4 [UDP]: Do not allow specific bind when wildcard bind exists. 2007-04-30 14:51:58 -07:00
ipv6 [IPV6]: Fix slab corruption running ip6sic 2007-04-28 21:26:23 -07:00
ipx [SK_BUFF]: Introduce skb_reset_transport_header(skb) 2007-04-25 22:25:15 -07:00
irda [IRDA] irda_device_dongle_init: fix kzalloc(GFP_KERNEL) in spinlock 2007-04-26 01:36:49 -07:00
iucv [AF_IUCV/IUCV]: smp_call_function deadlock 2007-04-28 23:03:59 -07:00
key [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
lapb [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
llc [SK_BUFF]: unions of just one member don't get anything done, kill them 2007-04-25 22:26:20 -07:00
netfilter [NETLINK]: Possible cleanups. 2007-04-26 00:57:41 -07:00
netlabel SELinux: extract the NetLabel SELinux support from the security server 2007-04-26 01:35:48 -04:00
netlink [NETLINK]: Possible cleanups. 2007-04-26 00:57:41 -07:00
netrom [AX25/NETROM/ROSE]: Convert to use modern wait queue API 2007-04-25 22:29:15 -07:00
packet [AF_PACKET]: Add option to return orig_dev to userspace. 2007-04-25 22:29:14 -07:00
rose [AX25/NETROM/ROSE]: Convert to use modern wait queue API 2007-04-25 22:29:15 -07:00
rxrpc [AF_RXRPC/AFS]: Arch-specific fixes. 2007-04-27 15:28:45 -07:00
sched [NET]: cleanup extra semicolons 2007-04-25 22:29:24 -07:00
sctp [SCTP]: Fix sctp_getsockopt_local_addrs_old() to use local storage. 2007-04-28 21:09:04 -07:00
sunrpc SUNRPC: RPC buffer size estimates are too large 2007-04-30 22:17:10 -07:00
tipc [TIPC]: Enhancements to msg_set_bits() routine 2007-04-25 22:29:49 -07:00
unix [SK_BUFF]: Introduce skb_reset_transport_header(skb) 2007-04-25 22:25:15 -07:00
wanrouter [SK_BUFF]: Introduce skb_copy_to_linear_data{_offset} 2007-04-25 22:28:29 -07:00
wireless [WIRELESS] cfg80211: Clarify locking comment. 2007-04-26 20:51:12 -07:00
x25 [SK_BUFF]: Some more conversions to skb_copy_from_linear_data 2007-04-25 22:28:30 -07:00
xfrm [XFRM]: Restrict upper layer information by bundle. 2007-04-30 00:58:09 -07:00
Kconfig [AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both 2007-04-26 15:48:28 -07:00
Makefile [AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both 2007-04-26 15:48:28 -07:00
TUNABLE
compat.c [NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support 2007-04-25 22:24:21 -07:00
nonet.c
socket.c [SOCKET]: Export __sock_recv_timestamp 2007-04-25 22:24:22 -07:00
sysctl_net.c