]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r267228:
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 22 Jun 2014 18:03:53 +0000 (18:03 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 22 Jun 2014 18:03:53 +0000 (18:03 +0000)
commit0c5de657a07617392be07c16233954e2ab0d5f97
tree85aa30fad6ec700fb429a20dcffa3d20d0099273
parent4e884707fe16dfa65d6a5081efd562c52454eda9
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/10@267742 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/rpc/svc.c
sys/rpc/svc.h
sys/rpc/svc_generic.c