Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0+
0002 
0003 =====================================================
0004 Linux Driver for Intel(R) Ethernet Network Connection
0005 =====================================================
0006 
0007 Intel Gigabit Linux driver.
0008 Copyright(c) 2008-2018 Intel Corporation.
0009 
0010 Contents
0011 ========
0012 
0013 - Identifying Your Adapter
0014 - Command Line Parameters
0015 - Additional Configurations
0016 - Support
0017 
0018 
0019 Identifying Your Adapter
0020 ========================
0021 For information on how to identify your adapter, and for the latest Intel
0022 network drivers, refer to the Intel Support website:
0023 https://www.intel.com/support
0024 
0025 
0026 Command Line Parameters
0027 =======================
0028 If the driver is built as a module, the following optional parameters are used
0029 by entering them on the command line with the modprobe command using this
0030 syntax::
0031 
0032     modprobe e1000e [<option>=<VAL1>,<VAL2>,...]
0033 
0034 There needs to be a <VAL#> for each network port in the system supported by
0035 this driver. The values will be applied to each instance, in function order.
0036 For example::
0037 
0038     modprobe e1000e InterruptThrottleRate=16000,16000
0039 
0040 In this case, there are two network ports supported by e1000e in the system.
0041 The default value for each parameter is generally the recommended setting,
0042 unless otherwise noted.
0043 
0044 NOTE: A descriptor describes a data buffer and attributes related to the data
0045 buffer. This information is accessed by the hardware.
0046 
0047 InterruptThrottleRate
0048 ---------------------
0049 :Valid Range: 0,1,3,4,100-100000
0050 :Default Value: 3
0051 
0052 Interrupt Throttle Rate controls the number of interrupts each interrupt
0053 vector can generate per second. Increasing ITR lowers latency at the cost of
0054 increased CPU utilization, though it may help throughput in some circumstances.
0055 
0056 Setting InterruptThrottleRate to a value greater or equal to 100
0057 will program the adapter to send out a maximum of that many interrupts
0058 per second, even if more packets have come in. This reduces interrupt
0059 load on the system and can lower CPU utilization under heavy load,
0060 but will increase latency as packets are not processed as quickly.
0061 
0062 The default behaviour of the driver previously assumed a static
0063 InterruptThrottleRate value of 8000, providing a good fallback value for
0064 all traffic types, but lacking in small packet performance and latency.
0065 The hardware can handle many more small packets per second however, and
0066 for this reason an adaptive interrupt moderation algorithm was implemented.
0067 
0068 The driver has two adaptive modes (setting 1 or 3) in which
0069 it dynamically adjusts the InterruptThrottleRate value based on the traffic
0070 that it receives. After determining the type of incoming traffic in the last
0071 timeframe, it will adjust the InterruptThrottleRate to an appropriate value
0072 for that traffic.
0073 
0074 The algorithm classifies the incoming traffic every interval into
0075 classes.  Once the class is determined, the InterruptThrottleRate value is
0076 adjusted to suit that traffic type the best. There are three classes defined:
0077 "Bulk traffic", for large amounts of packets of normal size; "Low latency",
0078 for small amounts of traffic and/or a significant percentage of small
0079 packets; and "Lowest latency", for almost completely small packets or
0080 minimal traffic.
0081 
0082  - 0: Off
0083       Turns off any interrupt moderation and may improve small packet latency.
0084       However, this is generally not suitable for bulk throughput traffic due
0085       to the increased CPU utilization of the higher interrupt rate.
0086  - 1: Dynamic mode
0087       This mode attempts to moderate interrupts per vector while maintaining
0088       very low latency. This can sometimes cause extra CPU utilization. If
0089       planning on deploying e1000e in a latency sensitive environment, this
0090       parameter should be considered.
0091  - 3: Dynamic Conservative mode (default)
0092       In dynamic conservative mode, the InterruptThrottleRate value is set to
0093       4000 for traffic that falls in class "Bulk traffic". If traffic falls in
0094       the "Low latency" or "Lowest latency" class, the InterruptThrottleRate is
0095       increased stepwise to 20000. This default mode is suitable for most
0096       applications.
0097  - 4: Simplified Balancing mode
0098       In simplified mode the interrupt rate is based on the ratio of TX and
0099       RX traffic.  If the bytes per second rate is approximately equal, the
0100       interrupt rate will drop as low as 2000 interrupts per second.  If the
0101       traffic is mostly transmit or mostly receive, the interrupt rate could
0102       be as high as 8000.
0103  - 100-100000:
0104       Setting InterruptThrottleRate to a value greater or equal to 100
0105       will program the adapter to send at most that many interrupts per second,
0106       even if more packets have come in. This reduces interrupt load on the
0107       system and can lower CPU utilization under heavy load, but will increase
0108       latency as packets are not processed as quickly.
0109 
0110 NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and
0111 RxAbsIntDelay parameters. In other words, minimizing the receive and/or
0112 transmit absolute delays does not force the controller to generate more
0113 interrupts than what the Interrupt Throttle Rate allows.
0114 
0115 RxIntDelay
0116 ----------
0117 :Valid Range: 0-65535 (0=off)
0118 :Default Value: 0
0119 
0120 This value delays the generation of receive interrupts in units of 1.024
0121 microseconds. Receive interrupt reduction can improve CPU efficiency if
0122 properly tuned for specific network traffic. Increasing this value adds extra
0123 latency to frame reception and can end up decreasing the throughput of TCP
0124 traffic. If the system is reporting dropped receives, this value may be set
0125 too high, causing the driver to run out of available receive descriptors.
0126 
0127 CAUTION: When setting RxIntDelay to a value other than 0, adapters may hang
0128 (stop transmitting) under certain network conditions. If this occurs a NETDEV
0129 WATCHDOG message is logged in the system event log. In addition, the
0130 controller is automatically reset, restoring the network connection. To
0131 eliminate the potential for the hang ensure that RxIntDelay is set to 0.
0132 
0133 RxAbsIntDelay
0134 -------------
0135 :Valid Range: 0-65535 (0=off)
0136 :Default Value: 8
0137 
0138 This value, in units of 1.024 microseconds, limits the delay in which a
0139 receive interrupt is generated. This value ensures that an interrupt is
0140 generated after the initial packet is received within the set amount of time,
0141 which is useful only if RxIntDelay is non-zero. Proper tuning, along with
0142 RxIntDelay, may improve traffic throughput in specific network conditions.
0143 
0144 TxIntDelay
0145 ----------
0146 :Valid Range: 0-65535 (0=off)
0147 :Default Value: 8
0148 
0149 This value delays the generation of transmit interrupts in units of 1.024
0150 microseconds. Transmit interrupt reduction can improve CPU efficiency if
0151 properly tuned for specific network traffic. If the system is reporting
0152 dropped transmits, this value may be set too high causing the driver to run
0153 out of available transmit descriptors.
0154 
0155 TxAbsIntDelay
0156 -------------
0157 :Valid Range: 0-65535 (0=off)
0158 :Default Value: 32
0159 
0160 This value, in units of 1.024 microseconds, limits the delay in which a
0161 transmit interrupt is generated. It is useful only if TxIntDelay is non-zero.
0162 It ensures that an interrupt is generated after the initial Packet is sent on
0163 the wire within the set amount of time. Proper tuning, along with TxIntDelay,
0164 may improve traffic throughput in specific network conditions.
0165 
0166 copybreak
0167 ---------
0168 :Valid Range: 0-xxxxxxx (0=off)
0169 :Default Value: 256
0170 
0171 The driver copies all packets below or equaling this size to a fresh receive
0172 buffer before handing it up the stack.
0173 This parameter differs from other parameters because it is a single (not 1,1,1
0174 etc.) parameter applied to all driver instances and it is also available
0175 during runtime at /sys/module/e1000e/parameters/copybreak.
0176 
0177 To use copybreak, type::
0178 
0179     modprobe e1000e.ko copybreak=128
0180 
0181 SmartPowerDownEnable
0182 --------------------
0183 :Valid Range: 0,1
0184 :Default Value: 0 (disabled)
0185 
0186 Allows the PHY to turn off in lower power states. The user can turn off this
0187 parameter in supported chipsets.
0188 
0189 KumeranLockLoss
0190 ---------------
0191 :Valid Range: 0,1
0192 :Default Value: 1 (enabled)
0193 
0194 This workaround skips resetting the PHY at shutdown for the initial silicon
0195 releases of ICH8 systems.
0196 
0197 IntMode
0198 -------
0199 :Valid Range: 0-2
0200 :Default Value: 0
0201 
0202    +-------+----------------+
0203    | Value | Interrupt Mode |
0204    +=======+================+
0205    |   0   |     Legacy     |
0206    +-------+----------------+
0207    |   1   |       MSI      |
0208    +-------+----------------+
0209    |   2   |      MSI-X     |
0210    +-------+----------------+
0211 
0212 IntMode allows load time control over the type of interrupt registered for by
0213 the driver. MSI-X is required for multiple queue support, and some kernels and
0214 combinations of kernel .config options will force a lower level of interrupt
0215 support.
0216 
0217 This command will show different values for each type of interrupt::
0218 
0219   cat /proc/interrupts
0220 
0221 CrcStripping
0222 ------------
0223 :Valid Range: 0,1
0224 :Default Value: 1 (enabled)
0225 
0226 Strip the CRC from received packets before sending up the network stack. If
0227 you have a machine with a BMC enabled but cannot receive IPMI traffic after
0228 loading or enabling the driver, try disabling this feature.
0229 
0230 WriteProtectNVM
0231 ---------------
0232 :Valid Range: 0,1
0233 :Default Value: 1 (enabled)
0234 
0235 If set to 1, configure the hardware to ignore all write/erase cycles to the
0236 GbE region in the ICHx NVM (in order to prevent accidental corruption of the
0237 NVM). This feature can be disabled by setting the parameter to 0 during initial
0238 driver load.
0239 
0240 NOTE: The machine must be power cycled (full off/on) when enabling NVM writes
0241 via setting the parameter to zero. Once the NVM has been locked (via the
0242 parameter at 1 when the driver loads) it cannot be unlocked except via power
0243 cycle.
0244 
0245 Debug
0246 -----
0247 :Valid Range: 0-16 (0=none,...,16=all)
0248 :Default Value: 0
0249 
0250 This parameter adjusts the level of debug messages displayed in the system logs.
0251 
0252 
0253 Additional Features and Configurations
0254 ======================================
0255 
0256 Jumbo Frames
0257 ------------
0258 Jumbo Frames support is enabled by changing the Maximum Transmission Unit (MTU)
0259 to a value larger than the default value of 1500.
0260 
0261 Use the ifconfig command to increase the MTU size. For example, enter the
0262 following where <x> is the interface number::
0263 
0264     ifconfig eth<x> mtu 9000 up
0265 
0266 Alternatively, you can use the ip command as follows::
0267 
0268     ip link set mtu 9000 dev eth<x>
0269     ip link set up dev eth<x>
0270 
0271 This setting is not saved across reboots. The setting change can be made
0272 permanent by adding 'MTU=9000' to the file:
0273 
0274 - For RHEL: /etc/sysconfig/network-scripts/ifcfg-eth<x>
0275 - For SLES: /etc/sysconfig/network/<config_file>
0276 
0277 NOTE: The maximum MTU setting for Jumbo Frames is 8996. This value coincides
0278 with the maximum Jumbo Frames size of 9018 bytes.
0279 
0280 NOTE: Using Jumbo frames at 10 or 100 Mbps is not supported and may result in
0281 poor performance or loss of link.
0282 
0283 NOTE: The following adapters limit Jumbo Frames sized packets to a maximum of
0284 4088 bytes:
0285 
0286   - Intel(R) 82578DM Gigabit Network Connection
0287   - Intel(R) 82577LM Gigabit Network Connection
0288 
0289 The following adapters do not support Jumbo Frames:
0290 
0291   - Intel(R) PRO/1000 Gigabit Server Adapter
0292   - Intel(R) PRO/1000 PM Network Connection
0293   - Intel(R) 82562G 10/100 Network Connection
0294   - Intel(R) 82562G-2 10/100 Network Connection
0295   - Intel(R) 82562GT 10/100 Network Connection
0296   - Intel(R) 82562GT-2 10/100 Network Connection
0297   - Intel(R) 82562V 10/100 Network Connection
0298   - Intel(R) 82562V-2 10/100 Network Connection
0299   - Intel(R) 82566DC Gigabit Network Connection
0300   - Intel(R) 82566DC-2 Gigabit Network Connection
0301   - Intel(R) 82566DM Gigabit Network Connection
0302   - Intel(R) 82566MC Gigabit Network Connection
0303   - Intel(R) 82566MM Gigabit Network Connection
0304   - Intel(R) 82567V-3 Gigabit Network Connection
0305   - Intel(R) 82577LC Gigabit Network Connection
0306   - Intel(R) 82578DC Gigabit Network Connection
0307 
0308 NOTE: Jumbo Frames cannot be configured on an 82579-based Network device if
0309 MACSec is enabled on the system.
0310 
0311 
0312 ethtool
0313 -------
0314 The driver utilizes the ethtool interface for driver configuration and
0315 diagnostics, as well as displaying statistical information. The latest ethtool
0316 version is required for this functionality. Download it at:
0317 
0318 https://www.kernel.org/pub/software/network/ethtool/
0319 
0320 NOTE: When validating enable/disable tests on some parts (for example, 82578),
0321 it is necessary to add a few seconds between tests when working with ethtool.
0322 
0323 
0324 Speed and Duplex Configuration
0325 ------------------------------
0326 In addressing speed and duplex configuration issues, you need to distinguish
0327 between copper-based adapters and fiber-based adapters.
0328 
0329 In the default mode, an Intel(R) Ethernet Network Adapter using copper
0330 connections will attempt to auto-negotiate with its link partner to determine
0331 the best setting. If the adapter cannot establish link with the link partner
0332 using auto-negotiation, you may need to manually configure the adapter and link
0333 partner to identical settings to establish link and pass packets. This should
0334 only be needed when attempting to link with an older switch that does not
0335 support auto-negotiation or one that has been forced to a specific speed or
0336 duplex mode. Your link partner must match the setting you choose. 1 Gbps speeds
0337 and higher cannot be forced. Use the autonegotiation advertising setting to
0338 manually set devices for 1 Gbps and higher.
0339 
0340 Speed, duplex, and autonegotiation advertising are configured through the
0341 ethtool utility.
0342 
0343 Caution: Only experienced network administrators should force speed and duplex
0344 or change autonegotiation advertising manually. The settings at the switch must
0345 always match the adapter settings. Adapter performance may suffer or your
0346 adapter may not operate if you configure the adapter differently from your
0347 switch.
0348 
0349 An Intel(R) Ethernet Network Adapter using fiber-based connections, however,
0350 will not attempt to auto-negotiate with its link partner since those adapters
0351 operate only in full duplex and only at their native speed.
0352 
0353 
0354 Enabling Wake on LAN (WoL)
0355 --------------------------
0356 WoL is configured through the ethtool utility.
0357 
0358 WoL will be enabled on the system during the next shut down or reboot. For
0359 this driver version, in order to enable WoL, the e1000e driver must be loaded
0360 prior to shutting down or suspending the system.
0361 
0362 NOTE: Wake on LAN is only supported on port A for the following devices:
0363 - Intel(R) PRO/1000 PT Dual Port Network Connection
0364 - Intel(R) PRO/1000 PT Dual Port Server Connection
0365 - Intel(R) PRO/1000 PT Dual Port Server Adapter
0366 - Intel(R) PRO/1000 PF Dual Port Server Adapter
0367 - Intel(R) PRO/1000 PT Quad Port Server Adapter
0368 - Intel(R) Gigabit PT Quad Port Server ExpressModule
0369 
0370 
0371 Support
0372 =======
0373 For general information, go to the Intel support website at:
0374 
0375 https://www.intel.com/support/
0376 
0377 or the Intel Wired Networking project hosted by Sourceforge at:
0378 
0379 https://sourceforge.net/projects/e1000
0380 
0381 If an issue is identified with the released source code on a supported kernel
0382 with a supported adapter, email the specific information related to the issue
0383 to e1000-devel@lists.sf.net.