freebsd-nq/sys/rpc
Alexander Motin 7455eb71a1 Rework flow control for connection-oriented (TCP) RPC server.
When processing receive buffer, write the amount of data, expected
in present request record, into socket's so_rcv.sb_lowat to make stack
aware about our needs.  When processing following upcalls, ignore them
until socket collect enough data to be read and processed in one turn.
  This change reduces number of context switches and other operations
in RPC stack during large NFS writes (especially via non-Jumbo networks)
by order of magnitude.

  After precessing current packet, take another look into the pending
buffer to find out whether the next packet had been already received.
If not, deactivate this port right there without making RPC code to
push this port to another thread just to find that there is nothing.
If the next packet is received partially, also deactivate the port, but
also update socket's so_rcv.sb_lowat to not be woken up prematurely.
  This change additionally reduces number of context switches per NFS
request about in half.
2013-12-19 21:31:28 +00:00
..
rpcsec_gss Add support for host-based (Kerberos 5 service principal) initiator 2013-07-09 01:05:28 +00:00
auth_none.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
auth_unix.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
auth.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
authunix_prot.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
clnt_dg.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
clnt_rc.c Revert 195703 and 195821 as this special stop handling in NFS is now 2013-03-13 21:06:03 +00:00
clnt_stat.h
clnt_vc.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
clnt.h Replace Sun Industry Standards Source License for Sun RPC code with a 2013-11-25 19:08:38 +00:00
getnetconfig.c
krpc.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
netconfig.h
nettype.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
pmap_prot.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
replay.c
replay.h
rpc_callmsg.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
rpc_com.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
rpc_generic.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
rpc_msg.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
rpc_prot.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
rpc.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
rpcb_clnt.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
rpcb_clnt.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:07:44 +00:00
rpcb_prot.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
rpcb_prot.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
rpcm_subs.h Use m_get(), m_gethdr() and m_getcl() instead of historic macros. 2013-03-12 12:17:19 +00:00
rpcsec_gss.h Add support for host-based (Kerberos 5 service principal) initiator 2013-07-09 01:05:28 +00:00
svc_auth_unix.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
svc_auth.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
svc_auth.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
svc_dg.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
svc_generic.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
svc_vc.c Rework flow control for connection-oriented (TCP) RPC server. 2013-12-19 21:31:28 +00:00
svc.c Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
svc.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
types.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00
xdr.h Replace Sun RPC license in TI-RPC library with a 3-clause BSD license, 2013-11-25 19:04:36 +00:00