git: tcp: Aggregate the mbuf in sosendtcp() a little bit
Sepherosa Ziehau
sephe at crater.dragonflybsd.org
Mon Oct 24 05:21:23 PDT 2011
commit c16aca65782c69370a255842c2e43ad127e5249d
Author: Sepherosa Ziehau <sephe at dragonflybsd.org>
Date: Mon Oct 24 19:21:37 2011 +0800
tcp: Aggregate the mbuf in sosendtcp() a little bit
This greatly reducse the ipi interrupts caused by ipi sending (both
domsg and sendmsg), thus improves overall performance a bit.
net.inet.tcp.sosnd_agglim is added to tune how much mbuf should be
aggregated; it is default to 2. Setting this sysctl to 1 restores
the old behaviour: one full mbuf at a time.
On Phenom 9550 (4 core, 2.2GHz):
8 parallel netperf -H 127.0.0.1 -P0 (4 runs, unit; Mbps)
IPIs/s (sum of 4 core)
1 mbuf 6735.98 6903.13 6971.89 7056.66 ~400K
2 mbuf 7675.47 7757.28 7815.45 7514.50 ~240K
4 mbuf 7895.33 7584.22 7704.12 7723.33 ~180K
8 mbuf 8006.94 8077.87 7701.23 8061.12 ~120K
16 mbuf 8151.68 8023.03 7972.42 8046.13 ~100K
The default value (2) for the sosnd_agglim improve the whole
performance by ~10%. IPI rate is also reduce greatly.
It has no obvious impact on 1000BaseT or 100baseTX network performace.
Summary of changes:
sys/kern/uipc_socket.c | 7 ++++++-
sys/netinet/tcp_input.c | 3 +++
2 files changed, 9 insertions(+), 1 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/c16aca65782c69370a255842c2e43ad127e5249d
--
DragonFly BSD source repository
More information about the Commits
mailing list