diff options
author | Bob Gilligan <gilligan@vyatta.com> | 2009-05-26 20:41:21 +0000 |
---|---|---|
committer | Bob Gilligan <gilligan@vyatta.com> | 2009-05-26 20:41:21 +0000 |
commit | 2cdb1209b2a645481e2202079f139de8b7c0fd08 (patch) | |
tree | 86bc68056b51b444f3e71da1678879377ade48f5 | |
parent | 4325b643a6ce14e328f319e5acc5a5d36519a2eb (diff) | |
download | vyatta-cfg-2cdb1209b2a645481e2202079f139de8b7c0fd08.tar.gz vyatta-cfg-2cdb1209b2a645481e2202079f139de8b7c0fd08.zip |
Bugfix 4428: Disable copybreak in selected drivers to improve performance.
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | etc/modprobe.d/vyatta_nocopybreak | 45 |
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 + + + |