summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Gilligan <gilligan@vyatta.com>2009-05-26 20:41:21 +0000
committerBob Gilligan <gilligan@vyatta.com>2009-05-26 20:41:21 +0000
commit2cdb1209b2a645481e2202079f139de8b7c0fd08 (patch)
tree86bc68056b51b444f3e71da1678879377ade48f5
parent4325b643a6ce14e328f319e5acc5a5d36519a2eb (diff)
downloadvyatta-cfg-2cdb1209b2a645481e2202079f139de8b7c0fd08.tar.gz
vyatta-cfg-2cdb1209b2a645481e2202079f139de8b7c0fd08.zip
Bugfix 4428: Disable copybreak in selected drivers to improve performance.
-rw-r--r--Makefile.am2
-rw-r--r--etc/modprobe.d/vyatta_nocopybreak45
2 files changed, 47 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index e3a4d06..f7096af 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,6 +3,7 @@ share_perl5dir = /opt/vyatta/share/perl5/Vyatta
completiondir = /etc/bash_completion.d
initddir = /etc/init.d
defaultdir = /etc/default
+modprobedir = /etc/modprobe.d
etc_shell_leveldir = $(sysconfdir)/shell/level
dhcphookdir = /etc/dhcp3/dhclient-exit-hooks.d
@@ -13,6 +14,7 @@ AM_LFLAGS = --prefix=yy_`basename $* .l`_ -olex.yy.c
completion_SCRIPTS = etc/bash_completion.d/20vyatta-cfg
initd_SCRIPTS = etc/init.d/vyatta-ofr
dhcphook_SCRIPTS = scripts/vyatta-dhclient-hook
+modprobe_SCRIPTS = etc/modprobe.d/vyatta_nocopybreak
lib_LTLIBRARIES = src/libvyatta-cfg.la
src_libvyatta_cfg_la_LIBADD = /usr/lib/libglib-2.0.la
diff --git a/etc/modprobe.d/vyatta_nocopybreak b/etc/modprobe.d/vyatta_nocopybreak
new file mode 100644
index 0000000..deb962f
--- /dev/null
+++ b/etc/modprobe.d/vyatta_nocopybreak
@@ -0,0 +1,45 @@
+#
+# **** License ****
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# This code was originally developed by Vyatta, Inc.
+# Portions created by Vyatta are Copyright (C) 2009 Vyatta, Inc.
+# All Rights Reserved.
+# **** End License ****
+#
+# Author: Bob Gilligan <gilligan@vyatta.com>
+#
+# Some network interface drivers employ a scheme known as "copybreak"
+# in which they make a copy of a received skb if the size of the
+# buffer is below a particular threshold, then return the original
+# receive skb back to the pool. Since these drivers initially
+# allocate a buffer size that is larger than the largest possible
+# packet, this scheme returns that large buffer to the pool quickly,
+# and uses a smaller one.
+#
+# The primary benefit of copybreak is better memory utilization. On
+# systems where the data is ultimately going to be copied out to user
+# space, the copybreak scheme is "low cost" because it has the side
+# benefit of priming the cache for that later copy. But on a router
+# that only touches the header fields of a received packet, the cost
+# can be relatively higher. And on modern systems the memory savings
+# is rarely an important consideration.
+#
+# Some of the drivers that employ copybreak make the feature
+# configurable via a module parameter. This file disables copybreak
+# in some of those drivers. Generally this results in an improvement
+# in forwarding performance for traffic using these drivers.
+#
+
+options e1000 copybreak=0
+options e1000e copybreak=0
+
+
+