Csphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftargetC/translations/zh_CN/networking/device_drivers/ethernet/chelsio/cxgbmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/zh_TW/networking/device_drivers/ethernet/chelsio/cxgbmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/it_IT/networking/device_drivers/ethernet/chelsio/cxgbmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/ja_JP/networking/device_drivers/ethernet/chelsio/cxgbmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/ko_KR/networking/device_drivers/ethernet/chelsio/cxgbmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/pt_BR/networking/device_drivers/ethernet/chelsio/cxgbmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/sp_SP/networking/device_drivers/ethernet/chelsio/cxgbmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh]/var/lib/git/docbuild/linux/Documentation/networking/device_drivers/ethernet/chelsio/cxgb.rsthKubh)}(h4This data file has been placed in the public domain.h]h4This data file has been placed in the public domain.}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhho/srv/docbuild/lib/venvs/build-kernel-docs/lib64/python3.9/site-packages/docutils/parsers/rst/include/isonum.txthKubh)}(hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .h]hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubhsubstitution_definition)}(h*.. |amp| unicode:: U+00026 .. AMPERSANDh]h&}hhsbah}(h]h ]h"]ampah$]h&]uh1hhhhKhhhhubh)}(h+.. |apos| unicode:: U+00027 .. APOSTROPHEh]h'}hhsbah}(h]h ]h"]aposah$]h&]uh1hhhhKhhhhubh)}(h).. |ast| unicode:: U+0002A .. ASTERISKh]h*}hjsbah}(h]h ]h"]astah$]h&]uh1hhhhK hhhhubh)}(h+.. |brvbar| unicode:: U+000A6 .. BROKEN BARh]h¦}hjsbah}(h]h ]h"]brvbarah$]h&]uh1hhhhK hhhhubh)}(h0.. |bsol| unicode:: U+0005C .. REVERSE SOLIDUSh]h\}hj#sbah}(h]h ]h"]bsolah$]h&]uh1hhhhK hhhhubh)}(h*.. |cent| unicode:: U+000A2 .. CENT SIGNh]h¢}hj2sbah}(h]h ]h"]centah$]h&]uh1hhhhK hhhhubh)}(h&.. |colon| unicode:: U+0003A .. COLONh]h:}hjAsbah}(h]h ]h"]colonah$]h&]uh1hhhhK hhhhubh)}(h&.. |comma| unicode:: U+0002C .. COMMAh]h,}hjPsbah}(h]h ]h"]commaah$]h&]uh1hhhhKhhhhubh)}(h... |commat| unicode:: U+00040 .. COMMERCIAL ATh]h@}hj_sbah}(h]h ]h"]commatah$]h&]uh1hhhhKhhhhubh)}(h/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGNh]h©}hjnsbah}(h]h ]h"]copyah$]h&]uh1hhhhKhhhhubh)}(h... |curren| unicode:: U+000A4 .. CURRENCY SIGNh]h¤}hj}sbah}(h]h ]h"]currenah$]h&]uh1hhhhKhhhhubh)}(h0.. |darr| unicode:: U+02193 .. DOWNWARDS ARROWh]h↓}hjsbah}(h]h ]h"]darrah$]h&]uh1hhhhKhhhhubh)}(h,.. |deg| unicode:: U+000B0 .. DEGREE SIGNh]h°}hjsbah}(h]h ]h"]degah$]h&]uh1hhhhKhhhhubh)}(h... |divide| unicode:: U+000F7 .. DIVISION SIGNh]h÷}hjsbah}(h]h ]h"]divideah$]h&]uh1hhhhKhhhhubh)}(h,.. |dollar| unicode:: U+00024 .. DOLLAR SIGNh]h$}hjsbah}(h]h ]h"]dollarah$]h&]uh1hhhhKhhhhubh)}(h,.. |equals| unicode:: U+0003D .. EQUALS SIGNh]h=}hjsbah}(h]h ]h"]equalsah$]h&]uh1hhhhKhhhhubh)}(h1.. |excl| unicode:: U+00021 .. EXCLAMATION MARKh]h!}hjsbah}(h]h ]h"]exclah$]h&]uh1hhhhKhhhhubh)}(h9.. |frac12| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjsbah}(h]h ]h"]frac12ah$]h&]uh1hhhhKhhhhubh)}(h<.. |frac14| unicode:: U+000BC .. VULGAR FRACTION ONE QUARTERh]h¼}hjsbah}(h]h ]h"]frac14ah$]h&]uh1hhhhKhhhhubh)}(h;.. |frac18| unicode:: U+0215B .. VULGAR FRACTION ONE EIGHTHh]h⅛}hjsbah}(h]h ]h"]frac18ah$]h&]uh1hhhhKhhhhubh)}(h?.. |frac34| unicode:: U+000BE .. VULGAR FRACTION THREE QUARTERSh]h¾}hjsbah}(h]h ]h"]frac34ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac38| unicode:: U+0215C .. VULGAR FRACTION THREE EIGHTHSh]h⅜}hj"sbah}(h]h ]h"]frac38ah$]h&]uh1hhhhKhhhhubh)}(h=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHSh]h⅝}hj1sbah}(h]h ]h"]frac58ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac78| unicode:: U+0215E .. VULGAR FRACTION SEVEN EIGHTHSh]h⅞}hj@sbah}(h]h ]h"]frac78ah$]h&]uh1hhhhKhhhhubh)}(h2.. |gt| unicode:: U+0003E .. GREATER-THAN SIGNh]h>}hjOsbah}(h]h ]h"]gtah$]h&]uh1hhhhKhhhhubh)}(h9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hj^sbah}(h]h ]h"]halfah$]h&]uh1hhhhK hhhhubh)}(h/.. |horbar| unicode:: U+02015 .. HORIZONTAL BARh]h―}hjmsbah}(h]h ]h"]horbarah$]h&]uh1hhhhK!hhhhubh)}(h'.. |hyphen| unicode:: U+02010 .. HYPHENh]h‐}hj|sbah}(h]h ]h"]hyphenah$]h&]uh1hhhhK"hhhhubh)}(h:.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARKh]h¡}hjsbah}(h]h ]h"]iexclah$]h&]uh1hhhhK#hhhhubh)}(h7.. |iquest| unicode:: U+000BF .. INVERTED QUESTION MARKh]h¿}hjsbah}(h]h ]h"]iquestah$]h&]uh1hhhhK$hhhhubh)}(hJ.. |laquo| unicode:: U+000AB .. LEFT-POINTING DOUBLE ANGLE QUOTATION MARKh]h«}hjsbah}(h]h ]h"]laquoah$]h&]uh1hhhhK%hhhhubh)}(h0.. |larr| unicode:: U+02190 .. LEFTWARDS ARROWh]h←}hjsbah}(h]h ]h"]larrah$]h&]uh1hhhhK&hhhhubh)}(h3.. |lcub| unicode:: U+0007B .. LEFT CURLY BRACKETh]h{}hjsbah}(h]h ]h"]lcubah$]h&]uh1hhhhK'hhhhubh)}(h;.. |ldquo| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARKh]h“}hjsbah}(h]h ]h"]ldquoah$]h&]uh1hhhhK(hhhhubh)}(h).. |lowbar| unicode:: U+0005F .. LOW LINEh]h_}hjsbah}(h]h ]h"]lowbarah$]h&]uh1hhhhK)hhhhubh)}(h1.. |lpar| unicode:: U+00028 .. LEFT PARENTHESISh]h(}hjsbah}(h]h ]h"]lparah$]h&]uh1hhhhK*hhhhubh)}(h4.. |lsqb| unicode:: U+0005B .. LEFT SQUARE BRACKETh]h[}hjsbah}(h]h ]h"]lsqbah$]h&]uh1hhhhK+hhhhubh)}(h;.. |lsquo| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARKh]h‘}hjsbah}(h]h ]h"]lsquoah$]h&]uh1hhhhK,hhhhubh)}(h/.. |lt| unicode:: U+0003C .. LESS-THAN SIGNh]h<}hj!sbah}(h]h ]h"]ltah$]h&]uh1hhhhK-hhhhubh)}(h+.. |micro| unicode:: U+000B5 .. MICRO SIGNh]hµ}hj0sbah}(h]h ]h"]microah$]h&]uh1hhhhK.hhhhubh)}(h+.. |middot| unicode:: U+000B7 .. MIDDLE DOTh]h·}hj?sbah}(h]h ]h"]middotah$]h&]uh1hhhhK/hhhhubh)}(h/.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACEh]h }hjNsbah}(h]h ]h"]nbspah$]h&]uh1hhhhK0hhhhubh)}(h).. |not| unicode:: U+000AC .. NOT SIGNh]h¬}hj]sbah}(h]h ]h"]notah$]h&]uh1hhhhK1hhhhubh)}(h,.. |num| unicode:: U+00023 .. NUMBER SIGNh]h#}hjlsbah}(h]h ]h"]numah$]h&]uh1hhhhK2hhhhubh)}(h).. |ohm| unicode:: U+02126 .. OHM SIGNh]hΩ}hj{sbah}(h]h ]h"]ohmah$]h&]uh1hhhhK3hhhhubh)}(h;.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATORh]hª}hjsbah}(h]h ]h"]ordfah$]h&]uh1hhhhK4hhhhubh)}(h<.. |ordm| unicode:: U+000BA .. MASCULINE ORDINAL INDICATORh]hº}hjsbah}(h]h ]h"]ordmah$]h&]uh1hhhhK5hhhhubh)}(h-.. |para| unicode:: U+000B6 .. PILCROW SIGNh]h¶}hjsbah}(h]h ]h"]paraah$]h&]uh1hhhhK6hhhhubh)}(h-.. |percnt| unicode:: U+00025 .. PERCENT SIGNh]h%}hjsbah}(h]h ]h"]percntah$]h&]uh1hhhhK7hhhhubh)}(h*.. |period| unicode:: U+0002E .. FULL STOPh]h.}hjsbah}(h]h ]h"]periodah$]h&]uh1hhhhK8hhhhubh)}(h*.. |plus| unicode:: U+0002B .. PLUS SIGNh]h+}hjsbah}(h]h ]h"]plusah$]h&]uh1hhhhK9hhhhubh)}(h0.. |plusmn| unicode:: U+000B1 .. PLUS-MINUS SIGNh]h±}hjsbah}(h]h ]h"]plusmnah$]h&]uh1hhhhK:hhhhubh)}(h+.. |pound| unicode:: U+000A3 .. POUND SIGNh]h£}hjsbah}(h]h ]h"]poundah$]h&]uh1hhhhK;hhhhubh)}(h... |quest| unicode:: U+0003F .. QUESTION MARKh]h?}hjsbah}(h]h ]h"]questah$]h&]uh1hhhhKhhhhubh)}(h1.. |rarr| unicode:: U+02192 .. RIGHTWARDS ARROWh]h→}hj/sbah}(h]h ]h"]rarrah$]h&]uh1hhhhK?hhhhubh)}(h4.. |rcub| unicode:: U+0007D .. RIGHT CURLY BRACKETh]h}}hj>sbah}(h]h ]h"]rcubah$]h&]uh1hhhhK@hhhhubh)}(h<.. |rdquo| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARKh]h”}hjMsbah}(h]h ]h"]rdquoah$]h&]uh1hhhhKAhhhhubh)}(h0.. |reg| unicode:: U+000AE .. REGISTERED SIGNh]h®}hj\sbah}(h]h ]h"]regah$]h&]uh1hhhhKBhhhhubh)}(h2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESISh]h)}hjksbah}(h]h ]h"]rparah$]h&]uh1hhhhKChhhhubh)}(h5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKETh]h]}hjzsbah}(h]h ]h"]rsqbah$]h&]uh1hhhhKDhhhhubh)}(h<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARKh]h’}hjsbah}(h]h ]h"]rsquoah$]h&]uh1hhhhKEhhhhubh)}(h-.. |sect| unicode:: U+000A7 .. SECTION SIGNh]h§}hjsbah}(h]h ]h"]sectah$]h&]uh1hhhhKFhhhhubh)}(h*.. |semi| unicode:: U+0003B .. SEMICOLONh]h;}hjsbah}(h]h ]h"]semiah$]h&]uh1hhhhKGhhhhubh)}(h,.. |shy| unicode:: U+000AD .. SOFT HYPHENh]h­}hjsbah}(h]h ]h"]shyah$]h&]uh1hhhhKHhhhhubh)}(h(.. |sol| unicode:: U+0002F .. SOLIDUSh]h/}hjsbah}(h]h ]h"]solah$]h&]uh1hhhhKIhhhhubh)}(h,.. |sung| unicode:: U+0266A .. EIGHTH NOTEh]h♪}hjsbah}(h]h ]h"]sungah$]h&]uh1hhhhKJhhhhubh)}(h0.. |sup1| unicode:: U+000B9 .. SUPERSCRIPT ONEh]h¹}hjsbah}(h]h ]h"]sup1ah$]h&]uh1hhhhKKhhhhubh)}(h0.. |sup2| unicode:: U+000B2 .. SUPERSCRIPT TWOh]h²}hjsbah}(h]h ]h"]sup2ah$]h&]uh1hhhhKLhhhhubh)}(h2.. |sup3| unicode:: U+000B3 .. SUPERSCRIPT THREEh]h³}hjsbah}(h]h ]h"]sup3ah$]h&]uh1hhhhKMhhhhubh)}(h4.. |times| unicode:: U+000D7 .. MULTIPLICATION SIGNh]h×}hjsbah}(h]h ]h"]timesah$]h&]uh1hhhhKNhhhhubh)}(h0.. |trade| unicode:: U+02122 .. TRADE MARK SIGNh]h™}hjsbah}(h]h ]h"]tradeah$]h&]uh1hhhhKOhhhhubh)}(h... |uarr| unicode:: U+02191 .. UPWARDS ARROWh]h↑}hj.sbah}(h]h ]h"]uarrah$]h&]uh1hhhhKPhhhhubh)}(h... |verbar| unicode:: U+0007C .. VERTICAL LINEh]h|}hj=sbah}(h]h ]h"]verbarah$]h&]uh1hhhhKQhhhhubh)}(h*.. |yen| unicode:: U+000A5 .. YEN SIGN h]h¥}hjLsbah}(h]h ]h"]yenah$]h&]uh1hhhhKRhhhhubhsection)}(hhh](htitle)}(h-Chelsio N210 10Gb Ethernet Network Controllerh]h-Chelsio N210 10Gb Ethernet Network Controller}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj]hhhhhKubh paragraph)}(hDriver Release Notes for Linuxh]hDriver Release Notes for Linux}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj]hhubjq)}(h Version 2.1.1h]h Version 2.1.1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhK hj]hhubjq)}(h June 20, 2005h]h June 20, 2005}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhK hj]hhubh)}(hPContents INTRODUCTION FEATURES PERFORMANCE DRIVER MESSAGES KNOWN ISSUES SUPPORTh]hPContents INTRODUCTION FEATURES PERFORMANCE DRIVER MESSAGES KNOWN ISSUES SUPPORT}hjsbah}(h]h ]h"]h$]h&]hhuh1hhj]hhhhhKubj\)}(hhh](ja)}(h Introductionh]h Introduction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjhhhhhKubh block_quote)}(hThis document describes the Linux driver for Chelsio 10Gb Ethernet Network Controller. This driver supports the Chelsio N210 NIC and is backward compatible with the Chelsio N110 model 10Gb NICs. h]jq)}(hThis document describes the Linux driver for Chelsio 10Gb Ethernet Network Controller. This driver supports the Chelsio N210 NIC and is backward compatible with the Chelsio N110 model 10Gb NICs.h]hThis document describes the Linux driver for Chelsio 10Gb Ethernet Network Controller. This driver supports the Chelsio N210 NIC and is backward compatible with the Chelsio N110 model 10Gb NICs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubeh}(h] introductionah ]h"] introductionah$]h&]uh1j[hj]hhhhhKubj\)}(hhh](ja)}(hFeaturesh]hFeatures}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjhhhhhK!ubj\)}(hhh](ja)}(h!Adaptive Interrupts (adaptive-rx)h]h!Adaptive Interrupts (adaptive-rx)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjhhhhhK$ubj)}(hXThis feature provides an adaptive algorithm that adjusts the interrupt coalescing parameters, allowing the driver to dynamically adapt the latency settings to achieve the highest performance during various types of network load. The interface used to control this feature is ethtool. Please see the ethtool manpage for additional usage information. By default, adaptive-rx is disabled. To enable adaptive-rx:: ethtool -C adaptive-rx on To disable adaptive-rx, use ethtool:: ethtool -C adaptive-rx off After disabling adaptive-rx, the timer latency value will be set to 50us. You may set the timer latency after disabling adaptive-rx:: ethtool -C rx-usecs An example to set the timer latency value to 100us on eth0:: ethtool -C eth0 rx-usecs 100 You may also provide a timer latency value while disabling adaptive-rx:: ethtool -C adaptive-rx off rx-usecs If adaptive-rx is disabled and a timer latency value is specified, the timer will be set to the specified value until changed by the user or until adaptive-rx is enabled. To view the status of the adaptive-rx and timer latency values:: ethtool -c h](jq)}(hThis feature provides an adaptive algorithm that adjusts the interrupt coalescing parameters, allowing the driver to dynamically adapt the latency settings to achieve the highest performance during various types of network load.h]hThis feature provides an adaptive algorithm that adjusts the interrupt coalescing parameters, allowing the driver to dynamically adapt the latency settings to achieve the highest performance during various types of network load.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhK&hjubjq)}(hwThe interface used to control this feature is ethtool. Please see the ethtool manpage for additional usage information.h]hwThe interface used to control this feature is ethtool. Please see the ethtool manpage for additional usage information.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhK+hjubjq)}(h adaptive-rx onh]h%ethtool -C adaptive-rx on}hj/sbah}(h]h ]h"]h$]h&]hhuh1j-hhhK1hjubjq)}(h%To disable adaptive-rx, use ethtool::h]h$To disable adaptive-rx, use ethtool:}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhK3hjubj.)}(hðtool -C adaptive-rx offh]hðtool -C adaptive-rx off}hjKsbah}(h]h ]h"]h$]h&]hhuh1j-hhhK5hjubjq)}(hAfter disabling adaptive-rx, the timer latency value will be set to 50us. You may set the timer latency after disabling adaptive-rx::h]hAfter disabling adaptive-rx, the timer latency value will be set to 50us. You may set the timer latency after disabling adaptive-rx:}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhK7hjubj.)}(h.ethtool -C rx-usecs h]h.ethtool -C rx-usecs }hjgsbah}(h]h ]h"]h$]h&]hhuh1j-hhhK:hjubjq)}(hhjubjq)}(hHYou may also provide a timer latency value while disabling adaptive-rx::h]hGYou may also provide a timer latency value while disabling adaptive-rx:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhK@hjubj.)}(h>ethtool -C adaptive-rx off rx-usecs h]h>ethtool -C adaptive-rx off rx-usecs }hjsbah}(h]h ]h"]h$]h&]hhuh1j-hhhKBhjubjq)}(hIf adaptive-rx is disabled and a timer latency value is specified, the timer will be set to the specified value until changed by the user or until adaptive-rx is enabled.h]hIf adaptive-rx is disabled and a timer latency value is specified, the timer will be set to the specified value until changed by the user or until adaptive-rx is enabled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKDhjubjq)}(h@To view the status of the adaptive-rx and timer latency values::h]h?To view the status of the adaptive-rx and timer latency values:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKHhjubj.)}(hethtool -c h]hethtool -c }hjsbah}(h]h ]h"]h$]h&]hhuh1j-hhhKJhjubeh}(h]h ]h"]h$]h&]uh1jhhhK&hjhhubeh}(h]adaptive-interrupts-adaptive-rxah ]h"]!adaptive interrupts (adaptive-rx)ah$]h&]uh1j[hjhhhhhK$ubj\)}(hhh](ja)}(h)TCP Segmentation Offloading (TSO) Supporth]h)TCP Segmentation Offloading (TSO) Support}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjhhhhhKNubj)}(hX)This feature, also known as "large send", enables a system's protocol stack to offload portions of outbound TCP processing to a network interface card thereby reducing system CPU utilization and enhancing performance. The interface used to control this feature is ethtool version 1.8 or higher. Please see the ethtool manpage for additional usage information. By default, TSO is enabled. To disable TSO:: ethtool -K tso off To enable TSO:: ethtool -K tso on To view the status of TSO:: ethtool -k h](jq)}(hThis feature, also known as "large send", enables a system's protocol stack to offload portions of outbound TCP processing to a network interface card thereby reducing system CPU utilization and enhancing performance.h]hThis feature, also known as “large send”, enables a system’s protocol stack to offload portions of outbound TCP processing to a network interface card thereby reducing system CPU utilization and enhancing performance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKPhjubjq)}(hThe interface used to control this feature is ethtool version 1.8 or higher. Please see the ethtool manpage for additional usage information.h]hThe interface used to control this feature is ethtool version 1.8 or higher. Please see the ethtool manpage for additional usage information.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKThjubjq)}(h,By default, TSO is enabled. To disable TSO::h]h+By default, TSO is enabled. To disable TSO:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKWhjubj.)}(hethtool -K tso offh]hethtool -K tso off}hj$sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKZhjubjq)}(hTo enable TSO::h]hTo enable TSO:}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhK\hjubj.)}(hethtool -K tso onh]hethtool -K tso on}hj@sbah}(h]h ]h"]h$]h&]hhuh1j-hhhK^hjubjq)}(hTo view the status of TSO::h]hTo view the status of TSO:}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhK`hjubj.)}(hethtool -k h]hethtool -k }hj\sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKbhjubeh}(h]h ]h"]h$]h&]uh1jhhhKPhjhhubeh}(h]'tcp-segmentation-offloading-tso-supportah ]h"])tcp segmentation offloading (tso) supportah$]h&]uh1j[hjhhhhhKNubeh}(h]featuresah ]h"]featuresah$]h&]uh1j[hj]hhhhhK!ubj\)}(hhh](ja)}(h Performanceh]h Performance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j`hjhhhhhKfubj)}(hX]The following information is provided as an example of how to change system parameters for "performance tuning" an what value to use. You may or may not want to change these system parameters, depending on your server/workstation application. Doing so is not warranted in any way by Chelsio Communications, and is done at "YOUR OWN RISK". Chelsio will not be held responsible for loss of data or damage to equipment. Your distribution may have a different way of doing things, or you may prefer a different method. These commands are shown only to provide an example of what to do and are by no means definitive. Making any of the following system changes will only last until you reboot your system. You may want to write a script that runs at boot-up which includes the optimal settings for your system. Setting PCI Latency Timer:: setpci -d 1425:: h](jq)}(hXThe following information is provided as an example of how to change system parameters for "performance tuning" an what value to use. You may or may not want to change these system parameters, depending on your server/workstation application. Doing so is not warranted in any way by Chelsio Communications, and is done at "YOUR OWN RISK". Chelsio will not be held responsible for loss of data or damage to equipment.h]hXThe following information is provided as an example of how to change system parameters for “performance tuning” an what value to use. You may or may not want to change these system parameters, depending on your server/workstation application. Doing so is not warranted in any way by Chelsio Communications, and is done at “YOUR OWN RISK”. Chelsio will not be held responsible for loss of data or damage to equipment.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhhjubjq)}(hYour distribution may have a different way of doing things, or you may prefer a different method. These commands are shown only to provide an example of what to do and are by no means definitive.h]hYour distribution may have a different way of doing things, or you may prefer a different method. These commands are shown only to provide an example of what to do and are by no means definitive.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKohjubjq)}(hMaking any of the following system changes will only last until you reboot your system. You may want to write a script that runs at boot-up which includes the optimal settings for your system.h]hMaking any of the following system changes will only last until you reboot your system. You may want to write a script that runs at boot-up which includes the optimal settings for your system.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKshjubj)}(h2Setting PCI Latency Timer:: setpci -d 1425:: h](jq)}(hSetting PCI Latency Timer::h]hSetting PCI Latency Timer:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKwhjubj.)}(hsetpci -d 1425::h]hsetpci -d 1425::}hjsbah}(h]h ]h"]h$]h&]hhuh1j-hhhKyhjubeh}(h]h ]h"]h$]h&]uh1jhhhKwhjubeh}(h]h ]h"]h$]h&]uh1jhhhKhhjhhubh bullet_list)}(hhh]h list_item)}(hXM 0x0c.l=0x0000F800 Disabling TCP timestamp:: sysctl -w net.ipv4.tcp_timestamps=0 Disabling SACK:: sysctl -w net.ipv4.tcp_sack=0 Setting large number of incoming connection requests:: sysctl -w net.ipv4.tcp_max_syn_backlog=3000 Setting maximum receive socket buffer size:: sysctl -w net.core.rmem_max=1024000 Setting maximum send socket buffer size:: sysctl -w net.core.wmem_max=1024000 Set smp_affinity (on a multiprocessor system) to a single CPU:: echo 1 > /proc/irq//smp_affinity Setting default receive socket buffer size:: sysctl -w net.core.rmem_default=524287 Setting default send socket buffer size:: sysctl -w net.core.wmem_default=524287 Setting maximum option memory buffers:: sysctl -w net.core.optmem_max=524287 Setting maximum backlog (# of unprocessed packets before kernel drops):: sysctl -w net.core.netdev_max_backlog=300000 Setting TCP read buffers (min/default/max):: sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000" Setting TCP write buffers (min/pressure/max):: sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000" Setting TCP buffer space (min/pressure/max):: sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000" TCP window size for single connections: The receive buffer (RX_WINDOW) size must be at least as large as the Bandwidth-Delay Product of the communication link between the sender and receiver. Due to the variations of RTT, you may want to increase the buffer size up to 2 times the Bandwidth-Delay Product. Reference page 289 of "TCP/IP Illustrated, Volume 1, The Protocols" by W. Richard Stevens. At 10Gb speeds, use the following formula:: RX_WINDOW >= 1.25MBytes * RTT(in milliseconds) Example for RTT with 100us: RX_WINDOW = (1,250,000 * 0.1) = 125,000 RX_WINDOW sizes of 256KB - 512KB should be sufficient. Setting the min, max, and default receive buffer (RX_WINDOW) size:: sysctl -w net.ipv4.tcp_rmem=" " TCP window size for multiple connections: The receive buffer (RX_WINDOW) size may be calculated the same as single connections, but should be divided by the number of connections. The smaller window prevents congestion and facilitates better pacing, especially if/when MAC level flow control does not work well or when it is not supported on the machine. Experimentation may be necessary to attain the correct value. This method is provided as a starting point for the correct receive buffer size. Setting the min, max, and default receive buffer (RX_WINDOW) size is performed in the same manner as single connection. h](jq)}(h0x0c.l=0x0000F800h]h0x0c.l=0x0000F800}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhK{hjubjq)}(hDisabling TCP timestamp::h]hDisabling TCP timestamp:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhK}hjubj.)}(h#sysctl -w net.ipv4.tcp_timestamps=0h]h#sysctl -w net.ipv4.tcp_timestamps=0}hjsbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(hDisabling SACK::h]hDisabling SACK:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(hsysctl -w net.ipv4.tcp_sack=0h]hsysctl -w net.ipv4.tcp_sack=0}hj.sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(h6Setting large number of incoming connection requests::h]h5Setting large number of incoming connection requests:}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(h+sysctl -w net.ipv4.tcp_max_syn_backlog=3000h]h+sysctl -w net.ipv4.tcp_max_syn_backlog=3000}hjJsbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(h,Setting maximum receive socket buffer size::h]h+Setting maximum receive socket buffer size:}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(h#sysctl -w net.core.rmem_max=1024000h]h#sysctl -w net.core.rmem_max=1024000}hjfsbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(h)Setting maximum send socket buffer size::h]h(Setting maximum send socket buffer size:}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(h#sysctl -w net.core.wmem_max=1024000h]h#sysctl -w net.core.wmem_max=1024000}hjsbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(h?Set smp_affinity (on a multiprocessor system) to a single CPU::h]h>Set smp_affinity (on a multiprocessor system) to a single CPU:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(h2echo 1 > /proc/irq//smp_affinityh]h2echo 1 > /proc/irq//smp_affinity}hjsbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(h,Setting default receive socket buffer size::h]h+Setting default receive socket buffer size:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(h&sysctl -w net.core.rmem_default=524287h]h&sysctl -w net.core.rmem_default=524287}hjsbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(h)Setting default send socket buffer size::h]h(Setting default send socket buffer size:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(h&sysctl -w net.core.wmem_default=524287h]h&sysctl -w net.core.wmem_default=524287}hjsbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(h'Setting maximum option memory buffers::h]h&Setting maximum option memory buffers:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(h$sysctl -w net.core.optmem_max=524287h]h$sysctl -w net.core.optmem_max=524287}hjsbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(hHSetting maximum backlog (# of unprocessed packets before kernel drops)::h]hGSetting maximum backlog (# of unprocessed packets before kernel drops):}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(h,sysctl -w net.core.netdev_max_backlog=300000h]h,sysctl -w net.core.netdev_max_backlog=300000}hj sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(h,Setting TCP read buffers (min/default/max)::h]h+Setting TCP read buffers (min/default/max):}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(h8sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"h]h8sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"}hj* sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(h.Setting TCP write buffers (min/pressure/max)::h]h-Setting TCP write buffers (min/pressure/max):}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(h8sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"h]h8sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"}hjF sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(h-Setting TCP buffer space (min/pressure/max)::h]h,Setting TCP buffer space (min/pressure/max):}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj.)}(h7sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000"h]h7sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000"}hjb sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjubjq)}(h'TCP window size for single connections:h]h'TCP window size for single connections:}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjubj)}(hXThe receive buffer (RX_WINDOW) size must be at least as large as the Bandwidth-Delay Product of the communication link between the sender and receiver. Due to the variations of RTT, you may want to increase the buffer size up to 2 times the Bandwidth-Delay Product. Reference page 289 of "TCP/IP Illustrated, Volume 1, The Protocols" by W. Richard Stevens. At 10Gb speeds, use the following formula:: RX_WINDOW >= 1.25MBytes * RTT(in milliseconds) Example for RTT with 100us: RX_WINDOW = (1,250,000 * 0.1) = 125,000 RX_WINDOW sizes of 256KB - 512KB should be sufficient. Setting the min, max, and default receive buffer (RX_WINDOW) size:: sysctl -w net.ipv4.tcp_rmem=" " h](jq)}(hXdThe receive buffer (RX_WINDOW) size must be at least as large as the Bandwidth-Delay Product of the communication link between the sender and receiver. Due to the variations of RTT, you may want to increase the buffer size up to 2 times the Bandwidth-Delay Product. Reference page 289 of "TCP/IP Illustrated, Volume 1, The Protocols" by W. Richard Stevens.h]hXhThe receive buffer (RX_WINDOW) size must be at least as large as the Bandwidth-Delay Product of the communication link between the sender and receiver. Due to the variations of RTT, you may want to increase the buffer size up to 2 times the Bandwidth-Delay Product. Reference page 289 of “TCP/IP Illustrated, Volume 1, The Protocols” by W. Richard Stevens.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj~ ubjq)}(h+At 10Gb speeds, use the following formula::h]h*At 10Gb speeds, use the following formula:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj~ ubj.)}(hrRX_WINDOW >= 1.25MBytes * RTT(in milliseconds) Example for RTT with 100us: RX_WINDOW = (1,250,000 * 0.1) = 125,000h]hrRX_WINDOW >= 1.25MBytes * RTT(in milliseconds) Example for RTT with 100us: RX_WINDOW = (1,250,000 * 0.1) = 125,000}hj sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhj~ ubjq)}(h6RX_WINDOW sizes of 256KB - 512KB should be sufficient.h]h6RX_WINDOW sizes of 256KB - 512KB should be sufficient.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj~ ubjq)}(hCSetting the min, max, and default receive buffer (RX_WINDOW) size::h]hBSetting the min, max, and default receive buffer (RX_WINDOW) size:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj~ ubj.)}(h3sysctl -w net.ipv4.tcp_rmem=" "h]h3sysctl -w net.ipv4.tcp_rmem=" "}hj sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhj~ ubeh}(h]h ]h"]h$]h&]uh1jhhhKhjubhdefinition_list)}(hhh]hdefinition_list_item)}(hXlTCP window size for multiple connections: The receive buffer (RX_WINDOW) size may be calculated the same as single connections, but should be divided by the number of connections. The smaller window prevents congestion and facilitates better pacing, especially if/when MAC level flow control does not work well or when it is not supported on the machine. Experimentation may be necessary to attain the correct value. This method is provided as a starting point for the correct receive buffer size. Setting the min, max, and default receive buffer (RX_WINDOW) size is performed in the same manner as single connection. h](hterm)}(h)TCP window size for multiple connections:h]h)TCP window size for multiple connections:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhj ubh definition)}(hhh](jq)}(hXThe receive buffer (RX_WINDOW) size may be calculated the same as single connections, but should be divided by the number of connections. The smaller window prevents congestion and facilitates better pacing, especially if/when MAC level flow control does not work well or when it is not supported on the machine. Experimentation may be necessary to attain the correct value. This method is provided as a starting point for the correct receive buffer size.h]hXThe receive buffer (RX_WINDOW) size may be calculated the same as single connections, but should be divided by the number of connections. The smaller window prevents congestion and facilitates better pacing, especially if/when MAC level flow control does not work well or when it is not supported on the machine. Experimentation may be necessary to attain the correct value. This method is provided as a starting point for the correct receive buffer size.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj ubjq)}(hwSetting the min, max, and default receive buffer (RX_WINDOW) size is performed in the same manner as single connection.h]hwSetting the min, max, and default receive buffer (RX_WINDOW) size is performed in the same manner as single connection.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hhhKhj ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubah}(h]h ]h"]h$]h&]bullet*uh1jhhhK{hjhhubeh}(h] performanceah ]h"] performanceah$]h&]uh1j[hj]hhhhhKfubj\)}(hhh](ja)}(hDriver Messagesh]hDriver Messages}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj@ hhhhhKubj)}(hX^The following messages are the most common messages logged by syslog. These may be found in /var/log/messages. Driver up:: Chelsio Network Driver - version 2.1.1 NIC detected:: eth#: Chelsio N210 1x10GBaseX NIC (rev #), PCIX 133MHz/64-bit Link up:: eth#: link is up at 10 Gbps, full duplex Link down:: eth#: link is down h](jq)}(hnThe following messages are the most common messages logged by syslog. These may be found in /var/log/messages.h]hnThe following messages are the most common messages logged by syslog. These may be found in /var/log/messages.}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjQ ubj)}(hDriver up:: Chelsio Network Driver - version 2.1.1 NIC detected:: eth#: Chelsio N210 1x10GBaseX NIC (rev #), PCIX 133MHz/64-bit Link up:: eth#: link is up at 10 Gbps, full duplex Link down:: eth#: link is down h](jq)}(h Driver up::h]h Driver up:}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjc ubj.)}(h&Chelsio Network Driver - version 2.1.1h]h&Chelsio Network Driver - version 2.1.1}hju sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjc ubjq)}(hNIC detected::h]h NIC detected:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjc ubj.)}(h=eth#: Chelsio N210 1x10GBaseX NIC (rev #), PCIX 133MHz/64-bith]h=eth#: Chelsio N210 1x10GBaseX NIC (rev #), PCIX 133MHz/64-bit}hj sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjc ubjq)}(h Link up::h]hLink up:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjc ubj.)}(h(eth#: link is up at 10 Gbps, full duplexh]h(eth#: link is up at 10 Gbps, full duplex}hj sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjc ubjq)}(h Link down::h]h Link down:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhjc ubj.)}(heth#: link is downh]heth#: link is down}hj sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhjc ubeh}(h]h ]h"]h$]h&]uh1jhhhKhjQ ubeh}(h]h ]h"]h$]h&]uh1jhhhKhj@ hhubeh}(h]driver-messagesah ]h"]driver messagesah$]h&]uh1j[hj]hhhhhKubj\)}(hhh](ja)}(h Known Issuesh]h Known Issues}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj hhhhhKubj)}(hXThese issues have been identified during testing. The following information is provided as a workaround to the problem. In some cases, this problem is inherent to Linux or to a particular Linux Distribution and/or hardware platform. 1. Large number of TCP retransmits on a multiprocessor (SMP) system. On a system with multiple CPUs, the interrupt (IRQ) for the network controller may be bound to more than one CPU. This will cause TCP retransmits if the packet data were to be split across different CPUs and re-assembled in a different order than expected. To eliminate the TCP retransmits, set smp_affinity on the particular interrupt to a single CPU. You can locate the interrupt (IRQ) used on the N110/N210 by using ifconfig:: ifconfig | grep Interrupt Set the smp_affinity to a single CPU:: echo 1 > /proc/irq//smp_affinity It is highly suggested that you do not run the irqbalance daemon on your system, as this will change any smp_affinity setting you have applied. The irqbalance daemon runs on a 10 second interval and binds interrupts to the least loaded CPU determined by the daemon. To disable this daemon:: chkconfig --level 2345 irqbalance off By default, some Linux distributions enable the kernel feature, irqbalance, which performs the same function as the daemon. To disable this feature, add the following line to your bootloader:: noirqbalance Example using the Grub bootloader:: title Red Hat Enterprise Linux AS (2.4.21-27.ELsmp) root (hd0,0) kernel /vmlinuz-2.4.21-27.ELsmp ro root=/dev/hda3 noirqbalance initrd /initrd-2.4.21-27.ELsmp.img 2. After running insmod, the driver is loaded and the incorrect network interface is brought up without running ifup. When using 2.4.x kernels, including RHEL kernels, the Linux kernel invokes a script named "hotplug". This script is primarily used to automatically bring up USB devices when they are plugged in, however, the script also attempts to automatically bring up a network interface after loading the kernel module. The hotplug script does this by scanning the ifcfg-eth# config files in /etc/sysconfig/network-scripts, looking for HWADDR=. If the hotplug script does not find the HWADDRR within any of the ifcfg-eth# files, it will bring up the device with the next available interface name. If this interface is already configured for a different network card, your new interface will have incorrect IP address and network settings. To solve this issue, you can add the HWADDR= key to the interface config file of your network controller. To disable this "hotplug" feature, you may add the driver (module name) to the "blacklist" file located in /etc/hotplug. It has been noted that this does not work for network devices because the net.agent script does not use the blacklist file. Simply remove, or rename, the net.agent script located in /etc/hotplug to disable this feature. 3. Transport Protocol (TP) hangs when running heavy multi-connection traffic on an AMD Opteron system with HyperTransport PCI-X Tunnel chipset. If your AMD Opteron system uses the AMD-8131 HyperTransport PCI-X Tunnel chipset, you may experience the "133-Mhz Mode Split Completion Data Corruption" bug identified by AMD while using a 133Mhz PCI-X card on the bus PCI-X bus. AMD states, "Under highly specific conditions, the AMD-8131 PCI-X Tunnel can provide stale data via split completion cycles to a PCI-X card that is operating at 133 Mhz", causing data corruption. AMD's provides three workarounds for this problem, however, Chelsio recommends the first option for best performance with this bug: For 133Mhz secondary bus operation, limit the transaction length and the number of outstanding transactions, via BIOS configuration programming of the PCI-X card, to the following: Data Length (bytes): 1k Total allowed outstanding transactions: 2 Please refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004, section 56, "133-MHz Mode Split Completion Data Corruption" for more details with this bug and workarounds suggested by AMD. It may be possible to work outside AMD's recommended PCI-X settings, try increasing the Data Length to 2k bytes for increased performance. If you have issues with these settings, please revert to the "safe" settings and duplicate the problem before submitting a bug or asking for support. .. note:: The default setting on most systems is 8 outstanding transactions and 2k bytes data length. 4. On multiprocessor systems, it has been noted that an application which is handling 10Gb networking can switch between CPUs causing degraded and/or unstable performance. If running on an SMP system and taking performance measurements, it is suggested you either run the latest netperf-2.4.0+ or use a binding tool such as Tim Hockin's procstate utilities (runon) . Binding netserver and netperf (or other applications) to particular CPUs will have a significant difference in performance measurements. You may need to experiment which CPU to bind the application to in order to achieve the best performance for your system. If you are developing an application designed for 10Gb networking, please keep in mind you may want to look at kernel functions sched_setaffinity & sched_getaffinity to bind your application. If you are just running user-space applications such as ftp, telnet, etc., you may want to try the runon tool provided by Tim Hockin's procstate utility. You could also try binding the interface to a particular CPU: runon 0 ifup eth0 h](jq)}(hThese issues have been identified during testing. The following information is provided as a workaround to the problem. In some cases, this problem is inherent to Linux or to a particular Linux Distribution and/or hardware platform.h]hThese issues have been identified during testing. The following information is provided as a workaround to the problem. In some cases, this problem is inherent to Linux or to a particular Linux Distribution and/or hardware platform.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj ubj)}(hX1. Large number of TCP retransmits on a multiprocessor (SMP) system. On a system with multiple CPUs, the interrupt (IRQ) for the network controller may be bound to more than one CPU. This will cause TCP retransmits if the packet data were to be split across different CPUs and re-assembled in a different order than expected. To eliminate the TCP retransmits, set smp_affinity on the particular interrupt to a single CPU. You can locate the interrupt (IRQ) used on the N110/N210 by using ifconfig:: ifconfig | grep Interrupt Set the smp_affinity to a single CPU:: echo 1 > /proc/irq//smp_affinity It is highly suggested that you do not run the irqbalance daemon on your system, as this will change any smp_affinity setting you have applied. The irqbalance daemon runs on a 10 second interval and binds interrupts to the least loaded CPU determined by the daemon. To disable this daemon:: chkconfig --level 2345 irqbalance off By default, some Linux distributions enable the kernel feature, irqbalance, which performs the same function as the daemon. To disable this feature, add the following line to your bootloader:: noirqbalance Example using the Grub bootloader:: title Red Hat Enterprise Linux AS (2.4.21-27.ELsmp) root (hd0,0) kernel /vmlinuz-2.4.21-27.ELsmp ro root=/dev/hda3 noirqbalance initrd /initrd-2.4.21-27.ELsmp.img 2. After running insmod, the driver is loaded and the incorrect network interface is brought up without running ifup. When using 2.4.x kernels, including RHEL kernels, the Linux kernel invokes a script named "hotplug". This script is primarily used to automatically bring up USB devices when they are plugged in, however, the script also attempts to automatically bring up a network interface after loading the kernel module. The hotplug script does this by scanning the ifcfg-eth# config files in /etc/sysconfig/network-scripts, looking for HWADDR=. If the hotplug script does not find the HWADDRR within any of the ifcfg-eth# files, it will bring up the device with the next available interface name. If this interface is already configured for a different network card, your new interface will have incorrect IP address and network settings. To solve this issue, you can add the HWADDR= key to the interface config file of your network controller. To disable this "hotplug" feature, you may add the driver (module name) to the "blacklist" file located in /etc/hotplug. It has been noted that this does not work for network devices because the net.agent script does not use the blacklist file. Simply remove, or rename, the net.agent script located in /etc/hotplug to disable this feature. 3. Transport Protocol (TP) hangs when running heavy multi-connection traffic on an AMD Opteron system with HyperTransport PCI-X Tunnel chipset. If your AMD Opteron system uses the AMD-8131 HyperTransport PCI-X Tunnel chipset, you may experience the "133-Mhz Mode Split Completion Data Corruption" bug identified by AMD while using a 133Mhz PCI-X card on the bus PCI-X bus. AMD states, "Under highly specific conditions, the AMD-8131 PCI-X Tunnel can provide stale data via split completion cycles to a PCI-X card that is operating at 133 Mhz", causing data corruption. AMD's provides three workarounds for this problem, however, Chelsio recommends the first option for best performance with this bug: For 133Mhz secondary bus operation, limit the transaction length and the number of outstanding transactions, via BIOS configuration programming of the PCI-X card, to the following: Data Length (bytes): 1k Total allowed outstanding transactions: 2 Please refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004, section 56, "133-MHz Mode Split Completion Data Corruption" for more details with this bug and workarounds suggested by AMD. It may be possible to work outside AMD's recommended PCI-X settings, try increasing the Data Length to 2k bytes for increased performance. If you have issues with these settings, please revert to the "safe" settings and duplicate the problem before submitting a bug or asking for support. .. note:: The default setting on most systems is 8 outstanding transactions and 2k bytes data length. 4. On multiprocessor systems, it has been noted that an application which is handling 10Gb networking can switch between CPUs causing degraded and/or unstable performance. If running on an SMP system and taking performance measurements, it is suggested you either run the latest netperf-2.4.0+ or use a binding tool such as Tim Hockin's procstate utilities (runon) . Binding netserver and netperf (or other applications) to particular CPUs will have a significant difference in performance measurements. You may need to experiment which CPU to bind the application to in order to achieve the best performance for your system. If you are developing an application designed for 10Gb networking, please keep in mind you may want to look at kernel functions sched_setaffinity & sched_getaffinity to bind your application. If you are just running user-space applications such as ftp, telnet, etc., you may want to try the runon tool provided by Tim Hockin's procstate utility. You could also try binding the interface to a particular CPU: runon 0 ifup eth0 h]henumerated_list)}(hhh](j)}(hXLarge number of TCP retransmits on a multiprocessor (SMP) system. On a system with multiple CPUs, the interrupt (IRQ) for the network controller may be bound to more than one CPU. This will cause TCP retransmits if the packet data were to be split across different CPUs and re-assembled in a different order than expected. To eliminate the TCP retransmits, set smp_affinity on the particular interrupt to a single CPU. You can locate the interrupt (IRQ) used on the N110/N210 by using ifconfig:: ifconfig | grep Interrupt Set the smp_affinity to a single CPU:: echo 1 > /proc/irq//smp_affinity It is highly suggested that you do not run the irqbalance daemon on your system, as this will change any smp_affinity setting you have applied. The irqbalance daemon runs on a 10 second interval and binds interrupts to the least loaded CPU determined by the daemon. To disable this daemon:: chkconfig --level 2345 irqbalance off By default, some Linux distributions enable the kernel feature, irqbalance, which performs the same function as the daemon. To disable this feature, add the following line to your bootloader:: noirqbalance Example using the Grub bootloader:: title Red Hat Enterprise Linux AS (2.4.21-27.ELsmp) root (hd0,0) kernel /vmlinuz-2.4.21-27.ELsmp ro root=/dev/hda3 noirqbalance initrd /initrd-2.4.21-27.ELsmp.img h](jq)}(hALarge number of TCP retransmits on a multiprocessor (SMP) system.h]hALarge number of TCP retransmits on a multiprocessor (SMP) system.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj ubj)}(hXIOn a system with multiple CPUs, the interrupt (IRQ) for the network controller may be bound to more than one CPU. This will cause TCP retransmits if the packet data were to be split across different CPUs and re-assembled in a different order than expected. To eliminate the TCP retransmits, set smp_affinity on the particular interrupt to a single CPU. You can locate the interrupt (IRQ) used on the N110/N210 by using ifconfig:: ifconfig | grep Interrupt Set the smp_affinity to a single CPU:: echo 1 > /proc/irq//smp_affinity It is highly suggested that you do not run the irqbalance daemon on your system, as this will change any smp_affinity setting you have applied. The irqbalance daemon runs on a 10 second interval and binds interrupts to the least loaded CPU determined by the daemon. To disable this daemon:: chkconfig --level 2345 irqbalance off By default, some Linux distributions enable the kernel feature, irqbalance, which performs the same function as the daemon. To disable this feature, add the following line to your bootloader:: noirqbalance Example using the Grub bootloader:: title Red Hat Enterprise Linux AS (2.4.21-27.ELsmp) root (hd0,0) kernel /vmlinuz-2.4.21-27.ELsmp ro root=/dev/hda3 noirqbalance initrd /initrd-2.4.21-27.ELsmp.img h](jq)}(hXOn a system with multiple CPUs, the interrupt (IRQ) for the network controller may be bound to more than one CPU. This will cause TCP retransmits if the packet data were to be split across different CPUs and re-assembled in a different order than expected.h]hXOn a system with multiple CPUs, the interrupt (IRQ) for the network controller may be bound to more than one CPU. This will cause TCP retransmits if the packet data were to be split across different CPUs and re-assembled in a different order than expected.}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj) ubjq)}(hTo eliminate the TCP retransmits, set smp_affinity on the particular interrupt to a single CPU. You can locate the interrupt (IRQ) used on the N110/N210 by using ifconfig::h]hTo eliminate the TCP retransmits, set smp_affinity on the particular interrupt to a single CPU. You can locate the interrupt (IRQ) used on the N110/N210 by using ifconfig:}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj) ubj.)}(h$ifconfig | grep Interrupth]h$ifconfig | grep Interrupt}hjI sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhj) ubjq)}(h&Set the smp_affinity to a single CPU::h]h%Set the smp_affinity to a single CPU:}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhKhj) ubj.)}(h2echo 1 > /proc/irq//smp_affinityh]h2echo 1 > /proc/irq//smp_affinity}hje sbah}(h]h ]h"]h$]h&]hhuh1j-hhhKhj) ubjq)}(hX"It is highly suggested that you do not run the irqbalance daemon on your system, as this will change any smp_affinity setting you have applied. The irqbalance daemon runs on a 10 second interval and binds interrupts to the least loaded CPU determined by the daemon. To disable this daemon::h]hX!It is highly suggested that you do not run the irqbalance daemon on your system, as this will change any smp_affinity setting you have applied. The irqbalance daemon runs on a 10 second interval and binds interrupts to the least loaded CPU determined by the daemon. To disable this daemon:}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMhj) ubj.)}(h%chkconfig --level 2345 irqbalance offh]h%chkconfig --level 2345 irqbalance off}hj sbah}(h]h ]h"]h$]h&]hhuh1j-hhhMhj) ubjq)}(hBy default, some Linux distributions enable the kernel feature, irqbalance, which performs the same function as the daemon. To disable this feature, add the following line to your bootloader::h]hBy default, some Linux distributions enable the kernel feature, irqbalance, which performs the same function as the daemon. To disable this feature, add the following line to your bootloader:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMhj) ubj.)}(hnoirqbalance Example using the Grub bootloader:: title Red Hat Enterprise Linux AS (2.4.21-27.ELsmp) root (hd0,0) kernel /vmlinuz-2.4.21-27.ELsmp ro root=/dev/hda3 noirqbalance initrd /initrd-2.4.21-27.ELsmp.imgh]hnoirqbalance Example using the Grub bootloader:: title Red Hat Enterprise Linux AS (2.4.21-27.ELsmp) root (hd0,0) kernel /vmlinuz-2.4.21-27.ELsmp ro root=/dev/hda3 noirqbalance initrd /initrd-2.4.21-27.ELsmp.img}hj sbah}(h]h ]h"]h$]h&]hhuh1j-hhhM hj) ubeh}(h]h ]h"]h$]h&]uh1jhhhKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hX:After running insmod, the driver is loaded and the incorrect network interface is brought up without running ifup. When using 2.4.x kernels, including RHEL kernels, the Linux kernel invokes a script named "hotplug". This script is primarily used to automatically bring up USB devices when they are plugged in, however, the script also attempts to automatically bring up a network interface after loading the kernel module. The hotplug script does this by scanning the ifcfg-eth# config files in /etc/sysconfig/network-scripts, looking for HWADDR=. If the hotplug script does not find the HWADDRR within any of the ifcfg-eth# files, it will bring up the device with the next available interface name. If this interface is already configured for a different network card, your new interface will have incorrect IP address and network settings. To solve this issue, you can add the HWADDR= key to the interface config file of your network controller. To disable this "hotplug" feature, you may add the driver (module name) to the "blacklist" file located in /etc/hotplug. It has been noted that this does not work for network devices because the net.agent script does not use the blacklist file. Simply remove, or rename, the net.agent script located in /etc/hotplug to disable this feature. h](jq)}(hrAfter running insmod, the driver is loaded and the incorrect network interface is brought up without running ifup.h]hrAfter running insmod, the driver is loaded and the incorrect network interface is brought up without running ifup.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMhj ubj)}(hXWhen using 2.4.x kernels, including RHEL kernels, the Linux kernel invokes a script named "hotplug". This script is primarily used to automatically bring up USB devices when they are plugged in, however, the script also attempts to automatically bring up a network interface after loading the kernel module. The hotplug script does this by scanning the ifcfg-eth# config files in /etc/sysconfig/network-scripts, looking for HWADDR=. If the hotplug script does not find the HWADDRR within any of the ifcfg-eth# files, it will bring up the device with the next available interface name. If this interface is already configured for a different network card, your new interface will have incorrect IP address and network settings. To solve this issue, you can add the HWADDR= key to the interface config file of your network controller. To disable this "hotplug" feature, you may add the driver (module name) to the "blacklist" file located in /etc/hotplug. It has been noted that this does not work for network devices because the net.agent script does not use the blacklist file. Simply remove, or rename, the net.agent script located in /etc/hotplug to disable this feature. A]h](jq)}(hXWhen using 2.4.x kernels, including RHEL kernels, the Linux kernel invokes a script named "hotplug". This script is primarily used to automatically bring up USB devices when they are plugged in, however, the script also attempts to automatically bring up a network interface after loading the kernel module. The hotplug script does this by scanning the ifcfg-eth# config files in /etc/sysconfig/network-scripts, looking for HWADDR=.h]hXWhen using 2.4.x kernels, including RHEL kernels, the Linux kernel invokes a script named “hotplug”. This script is primarily used to automatically bring up USB devices when they are plugged in, however, the script also attempts to automatically bring up a network interface after loading the kernel module. The hotplug script does this by scanning the ifcfg-eth# config files in /etc/sysconfig/network-scripts, looking for HWADDR=.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMhj ubjq)}(hX%If the hotplug script does not find the HWADDRR within any of the ifcfg-eth# files, it will bring up the device with the next available interface name. If this interface is already configured for a different network card, your new interface will have incorrect IP address and network settings.h]hX%If the hotplug script does not find the HWADDRR within any of the ifcfg-eth# files, it will bring up the device with the next available interface name. If this interface is already configured for a different network card, your new interface will have incorrect IP address and network settings.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhM hj ubjq)}(hvTo solve this issue, you can add the HWADDR= key to the interface config file of your network controller.h]hvTo solve this issue, you can add the HWADDR= key to the interface config file of your network controller.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhM&hj ubjq)}(hXTTo disable this "hotplug" feature, you may add the driver (module name) to the "blacklist" file located in /etc/hotplug. It has been noted that this does not work for network devices because the net.agent script does not use the blacklist file. Simply remove, or rename, the net.agent script located in /etc/hotplug to disable this feature.h]hX\To disable this “hotplug” feature, you may add the driver (module name) to the “blacklist” file located in /etc/hotplug. It has been noted that this does not work for network devices because the net.agent script does not use the blacklist file. Simply remove, or rename, the net.agent script located in /etc/hotplug to disable this feature.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhM)hj ubeh}(h]h ]h"]h$]h&]uh1jhhhMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hX8Transport Protocol (TP) hangs when running heavy multi-connection traffic on an AMD Opteron system with HyperTransport PCI-X Tunnel chipset. If your AMD Opteron system uses the AMD-8131 HyperTransport PCI-X Tunnel chipset, you may experience the "133-Mhz Mode Split Completion Data Corruption" bug identified by AMD while using a 133Mhz PCI-X card on the bus PCI-X bus. AMD states, "Under highly specific conditions, the AMD-8131 PCI-X Tunnel can provide stale data via split completion cycles to a PCI-X card that is operating at 133 Mhz", causing data corruption. AMD's provides three workarounds for this problem, however, Chelsio recommends the first option for best performance with this bug: For 133Mhz secondary bus operation, limit the transaction length and the number of outstanding transactions, via BIOS configuration programming of the PCI-X card, to the following: Data Length (bytes): 1k Total allowed outstanding transactions: 2 Please refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004, section 56, "133-MHz Mode Split Completion Data Corruption" for more details with this bug and workarounds suggested by AMD. It may be possible to work outside AMD's recommended PCI-X settings, try increasing the Data Length to 2k bytes for increased performance. If you have issues with these settings, please revert to the "safe" settings and duplicate the problem before submitting a bug or asking for support. .. note:: The default setting on most systems is 8 outstanding transactions and 2k bytes data length. h](jq)}(hTransport Protocol (TP) hangs when running heavy multi-connection traffic on an AMD Opteron system with HyperTransport PCI-X Tunnel chipset.h]hTransport Protocol (TP) hangs when running heavy multi-connection traffic on an AMD Opteron system with HyperTransport PCI-X Tunnel chipset.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhM/hj ubj)}(hXIf your AMD Opteron system uses the AMD-8131 HyperTransport PCI-X Tunnel chipset, you may experience the "133-Mhz Mode Split Completion Data Corruption" bug identified by AMD while using a 133Mhz PCI-X card on the bus PCI-X bus. AMD states, "Under highly specific conditions, the AMD-8131 PCI-X Tunnel can provide stale data via split completion cycles to a PCI-X card that is operating at 133 Mhz", causing data corruption. AMD's provides three workarounds for this problem, however, Chelsio recommends the first option for best performance with this bug: For 133Mhz secondary bus operation, limit the transaction length and the number of outstanding transactions, via BIOS configuration programming of the PCI-X card, to the following: Data Length (bytes): 1k Total allowed outstanding transactions: 2 Please refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004, section 56, "133-MHz Mode Split Completion Data Corruption" for more details with this bug and workarounds suggested by AMD. It may be possible to work outside AMD's recommended PCI-X settings, try increasing the Data Length to 2k bytes for increased performance. If you have issues with these settings, please revert to the "safe" settings and duplicate the problem before submitting a bug or asking for support. .. note:: The default setting on most systems is 8 outstanding transactions and 2k bytes data length. h](jq)}(hIf your AMD Opteron system uses the AMD-8131 HyperTransport PCI-X Tunnel chipset, you may experience the "133-Mhz Mode Split Completion Data Corruption" bug identified by AMD while using a 133Mhz PCI-X card on the bus PCI-X bus.h]hIf your AMD Opteron system uses the AMD-8131 HyperTransport PCI-X Tunnel chipset, you may experience the “133-Mhz Mode Split Completion Data Corruption” bug identified by AMD while using a 133Mhz PCI-X card on the bus PCI-X bus.}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhM2hj# ubjq)}(hAMD states, "Under highly specific conditions, the AMD-8131 PCI-X Tunnel can provide stale data via split completion cycles to a PCI-X card that is operating at 133 Mhz", causing data corruption.h]hAMD states, “Under highly specific conditions, the AMD-8131 PCI-X Tunnel can provide stale data via split completion cycles to a PCI-X card that is operating at 133 Mhz”, causing data corruption.}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhM7hj# ubjq)}(hAMD's provides three workarounds for this problem, however, Chelsio recommends the first option for best performance with this bug:h]hAMD’s provides three workarounds for this problem, however, Chelsio recommends the first option for best performance with this bug:}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhM;hj# ubj)}(hFor 133Mhz secondary bus operation, limit the transaction length and the number of outstanding transactions, via BIOS configuration programming of the PCI-X card, to the following: Data Length (bytes): 1k Total allowed outstanding transactions: 2 h](jq)}(hFor 133Mhz secondary bus operation, limit the transaction length and the number of outstanding transactions, via BIOS configuration programming of the PCI-X card, to the following:h]hFor 133Mhz secondary bus operation, limit the transaction length and the number of outstanding transactions, via BIOS configuration programming of the PCI-X card, to the following:}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhM>hjQ ubj)}(hCData Length (bytes): 1k Total allowed outstanding transactions: 2 h](jq)}(hData Length (bytes): 1kh]hData Length (bytes): 1k}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMBhjc ubjq)}(h)Total allowed outstanding transactions: 2h]h)Total allowed outstanding transactions: 2}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMDhjc ubeh}(h]h ]h"]h$]h&]uh1jhhhMBhjQ ubeh}(h]h ]h"]h$]h&]uh1jhhhM>hj# ubjq)}(hPlease refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004, section 56, "133-MHz Mode Split Completion Data Corruption" for more details with this bug and workarounds suggested by AMD.h]hPlease refer to AMD 8131-HT/PCI-X Errata 26310 Rev 3.08 August 2004, section 56, “133-MHz Mode Split Completion Data Corruption” for more details with this bug and workarounds suggested by AMD.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMFhj# ubjq)}(hX It may be possible to work outside AMD's recommended PCI-X settings, try increasing the Data Length to 2k bytes for increased performance. If you have issues with these settings, please revert to the "safe" settings and duplicate the problem before submitting a bug or asking for support.h]hX&It may be possible to work outside AMD’s recommended PCI-X settings, try increasing the Data Length to 2k bytes for increased performance. If you have issues with these settings, please revert to the “safe” settings and duplicate the problem before submitting a bug or asking for support.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMJhj# ubhnote)}(h[The default setting on most systems is 8 outstanding transactions and 2k bytes data length.h]jq)}(h[The default setting on most systems is 8 outstanding transactions and 2k bytes data length.h]h[The default setting on most systems is 8 outstanding transactions and 2k bytes data length.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMQhj ubah}(h]h ]h"]h$]h&]uh1j hj# ubeh}(h]h ]h"]h$]h&]uh1jhhhM2hj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hXXOn multiprocessor systems, it has been noted that an application which is handling 10Gb networking can switch between CPUs causing degraded and/or unstable performance. If running on an SMP system and taking performance measurements, it is suggested you either run the latest netperf-2.4.0+ or use a binding tool such as Tim Hockin's procstate utilities (runon) . Binding netserver and netperf (or other applications) to particular CPUs will have a significant difference in performance measurements. You may need to experiment which CPU to bind the application to in order to achieve the best performance for your system. If you are developing an application designed for 10Gb networking, please keep in mind you may want to look at kernel functions sched_setaffinity & sched_getaffinity to bind your application. If you are just running user-space applications such as ftp, telnet, etc., you may want to try the runon tool provided by Tim Hockin's procstate utility. You could also try binding the interface to a particular CPU: runon 0 ifup eth0 h](jq)}(hOn multiprocessor systems, it has been noted that an application which is handling 10Gb networking can switch between CPUs causing degraded and/or unstable performance.h]hOn multiprocessor systems, it has been noted that an application which is handling 10Gb networking can switch between CPUs causing degraded and/or unstable performance.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMThj ubj)}(hXIf running on an SMP system and taking performance measurements, it is suggested you either run the latest netperf-2.4.0+ or use a binding tool such as Tim Hockin's procstate utilities (runon) . Binding netserver and netperf (or other applications) to particular CPUs will have a significant difference in performance measurements. You may need to experiment which CPU to bind the application to in order to achieve the best performance for your system. If you are developing an application designed for 10Gb networking, please keep in mind you may want to look at kernel functions sched_setaffinity & sched_getaffinity to bind your application. If you are just running user-space applications such as ftp, telnet, etc., you may want to try the runon tool provided by Tim Hockin's procstate utility. You could also try binding the interface to a particular CPU: runon 0 ifup eth0 h](jq)}(hIf running on an SMP system and taking performance measurements, it is suggested you either run the latest netperf-2.4.0+ or use a binding tool such as Tim Hockin's procstate utilities (runon) .h](hIf running on an SMP system and taking performance measurements, it is suggested you either run the latest netperf-2.4.0+ or use a binding tool such as Tim Hockin’s procstate utilities (runon) <}(hj hhhNhNubh reference)}(h)http://www.hockin.org/~thockin/procstate/h]h)http://www.hockin.org/~thockin/procstate/}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij uh1j hj ubh>.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jphhhMXhj ubjq)}(hXBinding netserver and netperf (or other applications) to particular CPUs will have a significant difference in performance measurements. You may need to experiment which CPU to bind the application to in order to achieve the best performance for your system.h]hXBinding netserver and netperf (or other applications) to particular CPUs will have a significant difference in performance measurements. You may need to experiment which CPU to bind the application to in order to achieve the best performance for your system.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhM]hj ubjq)}(hIf you are developing an application designed for 10Gb networking, please keep in mind you may want to look at kernel functions sched_setaffinity & sched_getaffinity to bind your application.h]hIf you are developing an application designed for 10Gb networking, please keep in mind you may want to look at kernel functions sched_setaffinity & sched_getaffinity to bind your application.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMbhj ubjq)}(hIf you are just running user-space applications such as ftp, telnet, etc., you may want to try the runon tool provided by Tim Hockin's procstate utility. You could also try binding the interface to a particular CPU: runon 0 ifup eth0h]hIf you are just running user-space applications such as ftp, telnet, etc., you may want to try the runon tool provided by Tim Hockin’s procstate utility. You could also try binding the interface to a particular CPU: runon 0 ifup eth0}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMfhj ubeh}(h]h ]h"]h$]h&]uh1jhhhMXhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix.uh1j hj ubah}(h]h ]h"]h$]h&]uh1jhhhKhj ubeh}(h]h ]h"]h$]h&]uh1jhhhKhj hhubeh}(h] known-issuesah ]h"] known issuesah$]h&]uh1j[hj]hhhhhKubj\)}(hhh](ja)}(hSupporth]hSupport}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1j`hj_ hhhhhMmubj)}(hIf you have problems with the software or hardware, please contact our customer support team via email at support@chelsio.com or check our website at http://www.chelsio.com h]jq)}(hIf you have problems with the software or hardware, please contact our customer support team via email at support@chelsio.com or check our website at http://www.chelsio.comh](hjIf you have problems with the software or hardware, please contact our customer support team via email at }(hjt hhhNhNubj )}(hsupport@chelsio.comh]hsupport@chelsio.com}(hj| hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:support@chelsio.comuh1j hjt ubh or check our website at }(hjt hhhNhNubj )}(hhttp://www.chelsio.comh]hhttp://www.chelsio.com}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij uh1j hjt ubeh}(h]h ]h"]h$]h&]uh1jphhhMohjp ubah}(h]h ]h"]h$]h&]uh1jhhhMohj_ hhubh transition)}(hO-------------------------------------------------------------------------------h]h}(h]h ]h"]h$]h&]uh1j hhhMshj_ hhubj.)}(h^Chelsio Communications 370 San Aleso Ave. Suite 100 Sunnyvale, CA 94085 http://www.chelsio.comh]h^Chelsio Communications 370 San Aleso Ave. Suite 100 Sunnyvale, CA 94085 http://www.chelsio.com}hj sbah}(h]h ]h"]h$]h&]hhuh1j-hhhMwhj_ hhubjq)}(hThis 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.h]hThis 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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhM}hj_ hhubjq)}(hYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.h]hYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jphhhMhj_ hhubjq)}(hTHIS SOFTWARE IS PROVIDED ``AS IS`` AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.h](hTHIS SOFTWARE IS PROVIDED }(hj hhhNhNubhliteral)}(h ``AS IS``h]hAS IS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jphhhMhj_ hhubjq)}(hGCopyright |copy| 2003-2005 Chelsio Communications. All rights reserved.h](h Copyright }(hjhhhNhNubh©}(hjhhhNhNubh7 2003-2005 Chelsio Communications. All rights reserved.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jphhhMhj_ hhubeh}(h]supportah ]h"]supportah$]h&]uh1j[hj]hhhhhMmubeh}(h]-chelsio-n210-10gb-ethernet-network-controllerah ]h"]-chelsio n210 10gb ethernet network controllerah$]h&]uh1j[hhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(j`N generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjLerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}(hhjhjjj jj/j#j>j2jMjAj\jPjkj_jzjnjj}jjjjjjjjjjjjjjjjjjjjj.j"j=j1jLj@j[jOjjj^jyjmjj|jjjjjjjjjjjjjjjjjjjjj-j!j<j0jKj?jZjNjij]jxjljj{jjjjjjjjjjjjjjjjjjjjj,j j;j/jJj>jYjMjhj\jwjkjjzjjjjjjjjjjjjjjjjj jjjj+jj:j.jIj=jXjLusubstitution_names}(amphaposjastjbrvbarj bsolj/centj>colonjMcommaj\commatjkcopyjzcurrenjdarrjdegjdividejdollarjequalsjexcljfrac12jfrac14jfrac18jfrac34jfrac38j.frac58j=frac78jLgtj[halfjjhorbarjyhyphenjiexcljiquestjlaquojlarrjlcubjldquojlowbarjlparjlsqbjlsquojltj-microj<middotjKnbspjZnotjinumjxohmjordfjordmjparajpercntjperiodjplusjplusmnjpoundjquestjquotjraquoj,rarrj;rcubjJrdquojYregjhrparjwrsqbjrsquojsectjsemijshyjsoljsungjsup1jsup2jsup3j timesjtradej+uarrj:verbarjIyenjXurefnames}refids}nameids}(j&j#jjj}jzjjjujrj= j: j j j\ jY jju nametypes}(j&jj}jjuj= j j\ juh}(j#j]jjjzjjjjrjj: jj j@ jY j jj_ u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log]ADocumentation/networking/device_drivers/ethernet/chelsio/cxgb.rst(NNNNta decorationNhhub.