]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC r267228:
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 23 Jun 2014 13:11:47 +0000 (13:11 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 23 Jun 2014 13:11:47 +0000 (13:11 +0000)
commit1a1fa99859d66301a8da402d9a336f9c60a21090
treedcaa7b22f7a4728b11a4b35aec283d99628be36e
parenteeb4d32c10781a91792b3b39df5167387ddb1107
MFC r267228:
Split RPC pool threads into number of smaller semi-isolated groups.

Old design with unified thread pool was good from the point of thread
utilization.  But single pool-wide mutex became huge congestion point
for systems with many CPUs.  To reduce the congestion create several
thread groups within a pool (one group for every 6 CPUs and 12 threads),
each group with own mutex.  Each connection during its registration is
assigned to one of the groups in round-robin fashion.  File affinify
code may still move requests between the groups, but otherwise groups
are self-contained.

git-svn-id: svn://svn.freebsd.org/base/stable/9@267788 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/rpc/svc.c
sys/rpc/svc.h
sys/rpc/svc_generic.c