Qsphinx.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]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*}hhsbah}(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\}hjsbah}(h]h ]h"]bsolah$]h&]uh1hhhhK hhhhubh)}(h*.. |cent| unicode:: U+000A2 .. CENT SIGNh]h¢}hjsbah}(h]h ]h"]centah$]h&]uh1hhhhK hhhhubh)}(h&.. |colon| unicode:: U+0003A .. COLONh]h:}hj-sbah}(h]h ]h"]colonah$]h&]uh1hhhhK hhhhubh)}(h&.. |comma| unicode:: U+0002C .. COMMAh]h,}hj<sbah}(h]h ]h"]commaah$]h&]uh1hhhhKhhhhubh)}(h... |commat| unicode:: U+00040 .. COMMERCIAL ATh]h@}hjKsbah}(h]h ]h"]commatah$]h&]uh1hhhhKhhhhubh)}(h/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGNh]h©}hjZsbah}(h]h ]h"]copyah$]h&]uh1hhhhKhhhhubh)}(h... |curren| unicode:: U+000A4 .. CURRENCY SIGNh]h¤}hjisbah}(h]h ]h"]currenah$]h&]uh1hhhhKhhhhubh)}(h0.. |darr| unicode:: U+02193 .. DOWNWARDS ARROWh]h↓}hjxsbah}(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⅜}hjsbah}(h]h ]h"]frac38ah$]h&]uh1hhhhKhhhhubh)}(h=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHSh]h⅝}hjsbah}(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>}hj;sbah}(h]h ]h"]gtah$]h&]uh1hhhhKhhhhubh)}(h9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjJsbah}(h]h ]h"]halfah$]h&]uh1hhhhK hhhhubh)}(h/.. |horbar| unicode:: U+02015 .. HORIZONTAL BARh]h―}hjYsbah}(h]h ]h"]horbarah$]h&]uh1hhhhK!hhhhubh)}(h'.. |hyphen| unicode:: U+02010 .. HYPHENh]h‐}hjhsbah}(h]h ]h"]hyphenah$]h&]uh1hhhhK"hhhhubh)}(h:.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARKh]h¡}hjwsbah}(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µ}hjsbah}(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 }hj:sbah}(h]h ]h"]nbspah$]h&]uh1hhhhK0hhhhubh)}(h).. |not| unicode:: U+000AC .. NOT SIGNh]h¬}hjIsbah}(h]h ]h"]notah$]h&]uh1hhhhK1hhhhubh)}(h,.. |num| unicode:: U+00023 .. NUMBER SIGNh]h#}hjXsbah}(h]h ]h"]numah$]h&]uh1hhhhK2hhhhubh)}(h).. |ohm| unicode:: U+02126 .. OHM SIGNh]hΩ}hjgsbah}(h]h ]h"]ohmah$]h&]uh1hhhhK3hhhhubh)}(h;.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATORh]hª}hjvsbah}(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→}hjsbah}(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”}hj9sbah}(h]h ]h"]rdquoah$]h&]uh1hhhhKAhhhhubh)}(h0.. |reg| unicode:: U+000AE .. REGISTERED SIGNh]h®}hjHsbah}(h]h ]h"]regah$]h&]uh1hhhhKBhhhhubh)}(h2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESISh]h)}hjWsbah}(h]h ]h"]rparah$]h&]uh1hhhhKChhhhubh)}(h5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKETh]h]}hjfsbah}(h]h ]h"]rsqbah$]h&]uh1hhhhKDhhhhubh)}(h<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARKh]h’}hjusbah}(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™}hj sbah}(h]h ]h"]tradeah$]h&]uh1hhhhKOhhhhubh)}(h... |uarr| unicode:: U+02191 .. UPWARDS ARROWh]h↑}hjsbah}(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¥}hj8sbah}(h]h ]h"]yenah$]h&]uh1hhhhKRhhhhubhsection)}(hhh](htitle)}(h-Chelsio N210 10Gb Ethernet Network Controllerh]h-Chelsio N210 10Gb Ethernet Network Controller}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjIhhhhhKubh paragraph)}(hDriver Release Notes for Linuxh]hDriver Release Notes for Linux}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjIhhubj])}(h Version 2.1.1h]h Version 2.1.1}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK hjIhhubj])}(h June 20, 2005h]h June 20, 2005}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK hjIhhubh)}(hPContents INTRODUCTION FEATURES PERFORMANCE DRIVER MESSAGES KNOWN ISSUES SUPPORTh]hPContents INTRODUCTION FEATURES PERFORMANCE DRIVER MESSAGES KNOWN ISSUES SUPPORT}hjsbah}(h]h ]h"]h$]h&]hhuh1hhjIhhhhhKubjH)}(hhh](jM)}(h Introductionh]h Introduction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKubh 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]j])}(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&]uh1j\hhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubeh}(h] introductionah ]h"] introductionah$]h&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(hFeaturesh]hFeatures}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhK!ubjH)}(hhh](jM)}(h!Adaptive Interrupts (adaptive-rx)h]h!Adaptive Interrupts (adaptive-rx)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhK$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](j])}(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&]uh1j\hhhK&hjubj])}(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&]uh1j\hhhK+hjubj])}(h adaptive-rx onh]h%ethtool -C adaptive-rx on}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK1hjubj])}(h%To disable adaptive-rx, use ethtool::h]h$To disable adaptive-rx, use ethtool:}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK3hjubj)}(hðtool -C adaptive-rx offh]hðtool -C adaptive-rx off}hj7sbah}(h]h ]h"]h$]h&]hhuh1jhhhK5hjubj])}(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:}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK7hjubj)}(h.ethtool -C rx-usecs h]h.ethtool -C rx-usecs }hjSsbah}(h]h ]h"]h$]h&]hhuh1jhhhK:hjubj])}(hhjubj])}(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:}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK@hjubj)}(h>ethtool -C adaptive-rx off rx-usecs h]h>ethtool -C adaptive-rx off rx-usecs }hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKBhjubj])}(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&]uh1j\hhhKDhjubj])}(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&]uh1j\hhhKHhjubj)}(hethtool -c h]hethtool -c }hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKJhjubeh}(h]h ]h"]h$]h&]uh1jhhhK&hjhhubeh}(h]adaptive-interrupts-adaptive-rxah ]h"]!adaptive interrupts (adaptive-rx)ah$]h&]uh1jGhjhhhhhK$ubjH)}(hhh](jM)}(h)TCP Segmentation Offloading (TSO) Supporth]h)TCP Segmentation Offloading (TSO) Support}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKNubj)}(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](j])}(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&]uh1j\hhhKPhjubj])}(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&]uh1j\hhhKThjubj])}(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&]uh1j\hhhKWhjubj)}(hethtool -K tso offh]hethtool -K tso off}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKZhjubj])}(hTo enable TSO::h]hTo enable TSO:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK\hjubj)}(hethtool -K tso onh]hethtool -K tso on}hj,sbah}(h]h ]h"]h$]h&]hhuh1jhhhK^hjubj])}(hTo view the status of TSO::h]hTo view the status of TSO:}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK`hjubj)}(hethtool -k h]hethtool -k }hjHsbah}(h]h ]h"]h$]h&]hhuh1jhhhKbhjubeh}(h]h ]h"]h$]h&]uh1jhhhKPhjhhubeh}(h]'tcp-segmentation-offloading-tso-supportah ]h"])tcp segmentation offloading (tso) supportah$]h&]uh1jGhjhhhhhKNubeh}(h]featuresah ]h"]featuresah$]h&]uh1jGhjIhhhhhK!ubjH)}(hhh](jM)}(h Performanceh]h Performance}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjlhhhhhKfubj)}(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](j])}(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&]uh1j\hhhKhhj}ubj])}(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&]uh1j\hhhKohj}ubj])}(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&]uh1j\hhhKshj}ubj)}(h2Setting PCI Latency Timer:: setpci -d 1425:: h](j])}(hSetting PCI Latency Timer::h]hSetting PCI Latency Timer:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKwhjubj)}(hsetpci -d 1425::h]hsetpci -d 1425::}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKyhjubeh}(h]h ]h"]h$]h&]uh1jhhhKwhj}ubeh}(h]h ]h"]h$]h&]uh1jhhhKhhjlhhubh 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](j])}(h0x0c.l=0x0000F800h]h0x0c.l=0x0000F800}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK{hjubj])}(hDisabling TCP timestamp::h]hDisabling TCP timestamp:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK}hjubj)}(h#sysctl -w net.ipv4.tcp_timestamps=0h]h#sysctl -w net.ipv4.tcp_timestamps=0}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(hDisabling SACK::h]hDisabling SACK:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(hsysctl -w net.ipv4.tcp_sack=0h]hsysctl -w net.ipv4.tcp_sack=0}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(h6Setting large number of incoming connection requests::h]h5Setting large number of incoming connection requests:}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(h+sysctl -w net.ipv4.tcp_max_syn_backlog=3000h]h+sysctl -w net.ipv4.tcp_max_syn_backlog=3000}hj6sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(h,Setting maximum receive socket buffer size::h]h+Setting maximum receive socket buffer size:}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(h#sysctl -w net.core.rmem_max=1024000h]h#sysctl -w net.core.rmem_max=1024000}hjRsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(h)Setting maximum send socket buffer size::h]h(Setting maximum send socket buffer size:}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(h#sysctl -w net.core.wmem_max=1024000h]h#sysctl -w net.core.wmem_max=1024000}hjnsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(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:}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(h2echo 1 > /proc/irq//smp_affinityh]h2echo 1 > /proc/irq//smp_affinity}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(h,Setting default receive socket buffer size::h]h+Setting default receive socket buffer size:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(h&sysctl -w net.core.rmem_default=524287h]h&sysctl -w net.core.rmem_default=524287}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(h)Setting default send socket buffer size::h]h(Setting default send socket buffer size:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(h&sysctl -w net.core.wmem_default=524287h]h&sysctl -w net.core.wmem_default=524287}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(h'Setting maximum option memory buffers::h]h&Setting maximum option memory buffers:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(h$sysctl -w net.core.optmem_max=524287h]h$sysctl -w net.core.optmem_max=524287}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(hHSetting maximum backlog (# of unprocessed packets before kernel drops)::h]hGSetting maximum backlog (# of unprocessed packets before kernel drops):}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(h,sysctl -w net.core.netdev_max_backlog=300000h]h,sysctl -w net.core.netdev_max_backlog=300000}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(h,Setting TCP read buffers (min/default/max)::h]h+Setting TCP read buffers (min/default/max):}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(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&]hhuh1jhhhKhjubj])}(h.Setting TCP write buffers (min/pressure/max)::h]h-Setting TCP write buffers (min/pressure/max):}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(h8sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"h]h8sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"}hj2 sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(h-Setting TCP buffer space (min/pressure/max)::h]h,Setting TCP buffer space (min/pressure/max):}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(h7sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000"h]h7sysctl -w net.ipv4.tcp_mem="10000000 10000000 10000000"}hjN sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubj])}(h'TCP window size for single connections:h]h'TCP window size for single connections:}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubj)}(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](j])}(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.}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjj ubj])}(h+At 10Gb speeds, use the following formula::h]h*At 10Gb speeds, use the following formula:}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjj 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&]hhuh1jhhhKhjj ubj])}(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&]uh1j\hhhKhjj ubj])}(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&]uh1j\hhhKhjj ubj)}(h3sysctl -w net.ipv4.tcp_rmem=" "h]h3sysctl -w net.ipv4.tcp_rmem=" "}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjj 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](j])}(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&]uh1j\hhhKhj ubj])}(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&]uh1j\hhhKhj 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{hjlhhubeh}(h] performanceah ]h"] performanceah$]h&]uh1jGhjIhhhhhKfubjH)}(hhh](jM)}(hDriver Messagesh]hDriver Messages}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj, 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](j])}(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.}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj= 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](j])}(h Driver up::h]h Driver up:}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjO ubj)}(h&Chelsio Network Driver - version 2.1.1h]h&Chelsio Network Driver - version 2.1.1}hja sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjO ubj])}(hNIC detected::h]h NIC detected:}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjO 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&]hhuh1jhhhKhjO ubj])}(h Link up::h]hLink up:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjO 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&]hhuh1jhhhKhjO ubj])}(h Link down::h]h Link down:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjO ubj)}(heth#: link is downh]heth#: link is down}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjO ubeh}(h]h ]h"]h$]h&]uh1jhhhKhj= ubeh}(h]h ]h"]h$]h&]uh1jhhhKhj, hhubeh}(h]driver-messagesah ]h"]driver messagesah$]h&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(h Known Issuesh]h Known Issues}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj 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](j])}(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&]uh1j\hhhKhj 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](j])}(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&]uh1j\hhhKhj 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](j])}(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&]uh1j\hhhKhj ubj])}(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&]uh1j\hhhKhj ubj)}(h$ifconfig | grep Interrupth]h$ifconfig | grep Interrupt}hj5 sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj ubj])}(h&Set the smp_affinity to a single CPU::h]h%Set the smp_affinity to a single CPU:}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj ubj)}(h2echo 1 > /proc/irq//smp_affinityh]h2echo 1 > /proc/irq//smp_affinity}hjQ sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhj ubj])}(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:}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhMhj ubj)}(h%chkconfig --level 2345 irqbalance offh]h%chkconfig --level 2345 irqbalance off}hjm sbah}(h]h ]h"]h$]h&]hhuh1jhhhMhj ubj])}(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&]uh1j\hhhMhj 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&]hhuh1jhhhM 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](j])}(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&]uh1j\hhhMhj 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. 2]h](j])}(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&]uh1j\hhhMhj ubj])}(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&]uh1j\hhhM hj ubj])}(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&]uh1j\hhhM&hj ubj])}(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&]uh1j\hhhM)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](j])}(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&]uh1j\hhhM/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](j])}(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&]uh1j\hhhM2hj ubj])}(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.}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhM7hj ubj])}(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:}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhM;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](j])}(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:}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhM>hj= ubj)}(hCData Length (bytes): 1k Total allowed outstanding transactions: 2 h](j])}(hData Length (bytes): 1kh]hData Length (bytes): 1k}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhMBhjO ubj])}(h)Total allowed outstanding transactions: 2h]h)Total allowed outstanding transactions: 2}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhMDhjO ubeh}(h]h ]h"]h$]h&]uh1jhhhMBhj= ubeh}(h]h ]h"]h$]h&]uh1jhhhM>hj ubj])}(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&]uh1j\hhhMFhj ubj])}(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&]uh1j\hhhMJhj ubhnote)}(h[The default setting on most systems is 8 outstanding transactions and 2k bytes data length.h]j])}(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&]uh1j\hhhMQhj 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](j])}(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&]uh1j\hhhMThj 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](j])}(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&]uh1j\hhhMXhj ubj])}(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&]uh1j\hhhM]hj ubj])}(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&]uh1j\hhhMbhj ubj])}(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&]uh1j\hhhMfhj 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&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(hSupporth]hSupport}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjK 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]j])}(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 }(hj` hhhNhNubj )}(hsupport@chelsio.comh]hsupport@chelsio.com}(hjh hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:support@chelsio.comuh1j hj` ubh or check our website at }(hj` hhhNhNubj )}(hhttp://www.chelsio.comh]hhttp://www.chelsio.com}(hj| hhhNhNubah}(h]h ]h"]h$]h&]refurij~ uh1j hj` ubeh}(h]h ]h"]h$]h&]uh1j\hhhMohj\ ubah}(h]h ]h"]h$]h&]uh1jhhhMohjK hhubh transition)}(hO-------------------------------------------------------------------------------h]h}(h]h ]h"]h$]h&]uh1j hhhMshjK 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&]hhuh1jhhhMwhjK hhubj])}(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&]uh1j\hhhM}hjK hhubj])}(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&]uh1j\hhhMhjK hhubj])}(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&]uh1j\hhhMhjK hhubj])}(hGCopyright |copy| 2003-2005 Chelsio Communications. All rights reserved.h](h Copyright }(hj hhhNhNubh©}(hj hhhNhNubh7 2003-2005 Chelsio Communications. All rights reserved.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hhhMhjK hhubeh}(h]supportah ]h"]supportah$]h&]uh1jGhjIhhhhhMmubeh}(h]-chelsio-n210-10gb-ethernet-network-controllerah ]h"]-chelsio n210 10gb ethernet network controllerah$]h&]uh1jGhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jLN 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_handlerj8error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _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}(hhhhhhj jjjj*jj9j-jHj<jWjKjfjZjujijjxjjjjjjjjjjjjjjjjj jjjj)jj8j,jGj;jVjJjejYjtjhjjwjjjjjjjjjjjjjjjjj jjj j(jj7j+jFj:jUjIjdjXjsjgjjvjjjjjjjjjjjjjjjjj jjj j'jj6j*jEj9jTjHjcjWjrjfjjujjjjjjjjjjjjjjjjjjjj j&jj5j)jDj8usubstitution_names}(amphߌaposhasthbrvbarj bsoljcentj*colonj9commajHcommatjWcopyjfcurrenjudarrjdegjdividejdollarjequalsjexcljfrac12jfrac14jfrac18jfrac34j frac38jfrac58j)frac78j8gtjGhalfjVhorbarjehyphenjtiexcljiquestjlaquojlarrjlcubjldquojlowbarjlparjlsqbjlsquoj ltjmicroj(middotj7nbspjFnotjUnumjdohmjsordfjordmjparajpercntjperiodjplusjplusmnjpoundjquestjquotj raquojrarrj'rcubj6rdquojEregjTrparjcrsqbjrrsquojsectjsemijshyjsoljsungjsup1jsup2jsup3jtimesjtradejuarrj&verbarj5yenjDurefnames}refids}nameids}(jjjjjijfjjjaj^j) j& j j jH jE j ju nametypes}(jjjijjaj) j jH j uh}(jjIjjjfjjjj^jj& jlj j, jE j jjK 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.