📄 readme
字号:
Linux* Base Driver for Intel(R) Network Connection===============================================================November 21, 2008Contents========- In This Release- Identifying Your Adapter- Upgrading- Building and Installation- Command Line Parameters- Additional Configurations- Known Issues/Troubleshooting- SupportIn This Release===============This file describes the e1000e Linux* Base Driver for Intel Network Connection. This driver supports kernel versions 2.4.x and 2.6.x. This driver includes support for Itanium(R)2-based systems.NOTE: The 82546GB part requires the e1000 driver, not the e1000e driver. This driver is only supported as a loadable module at this time. Intel isnot supplying patches against the kernel source to allow for static linkingof the driver. For questions related to hardware requirements, refer to thedocumentation supplied with your Intel Gigabit adapter. All hardwarerequirements listed apply to use with Linux.This release includes support for Intel(R) I/O Acceleration Technology,Intel(R) I/OAT. You can find additional information on Intel I/OAT at http://www.intel.com/technology/ioacceleration/index.htm.The following features are now available in supported kernels: - Native VLANs - Channel Bonding (teaming) - SNMPChannel Bonding documentation can be found in the Linux kernel source:/Documentation/networking/bonding.txtThe driver information previously displayed in the /proc filesystem is notsupported in this release. Alternatively, you can use ethtool (version 1.6or later), lspci, and ifconfig to obtain the same information.Instructions on updating ethtool can be found in the section "AdditionalConfigurations" later in this document.NOTE: The Intel(R) 82562v 10/100 Network Connection only provides 10/100support.Identifying Your Adapter========================For more information on how to identify your adapter, go to the Adapter &Driver ID Guide at: http://support.intel.com/support/go/network/adapter/idguide.htmFor the latest Intel network drivers for Linux, refer to the followingwebsite. In the search field, enter your adapter name or type, or use thenetworking link on the left to search for your adapter: http://downloadcenter.intel.com/scripts-df-external/Support_Intel.aspxUpgrading=========If you currently have the e1000 driver installed and need to install e1000e,perform the following: - If your version of e1000 is 7.6.15.5 or less, upgrade to e1000 version 8.x, using the instructions in the e1000 README. - Install the e1000e driver using the instructions in the Building and Installation section below. - Modify /etc/modprobe.conf to point your PCIe devices to use the new e1000e driver using alias ethX e1000e, or use your distribution's specific method for configuring network adapters like RedHat's setup/system-config-network or SuSE's yast2.Building and Installation=========================To build a binary RPM* package of this driver, run 'rpmbuild -tb<filename.tar.gz>'. Replace <filename.tar.gz> with the specific filenameof the driver.NOTE: For the build to work properly, the currently running kernel MUST match the version and configuration of the installed kernel sources. If you have just recompiled the kernel reboot the system now. RPM functionality has only been tested in Red Hat distributions.1. Move the base driver tar file to the directory of your choice. For example, use /home/username/e1000e or /usr/local/src/e1000e.2. Untar/unzip archive: tar zxf e1000e-x.x.x.tar.gz3. Change to the driver src directory: cd e1000e-x.x.x/src/4. Compile the driver module: # make install The binary will be installed as: /lib/modules/<KERNEL VERSION>/kernel/drivers/net/e1000e/e1000e.[k]o The install locations listed above are the default locations. They might not be correct for certain Linux distributions. 5. Load the module using either the insmod or modprobe command: modprobe e1000e insmod e1000e Note that for 2.6 kernels the insmod command can be used if the full path to the driver module is specified. For example: insmod /lib/modules/<KERNEL VERSION>/kernel/drivers/net/e1000e/e1000e.ko With 2.6 based kernels also make sure that older e1000e drivers are removed from the kernel, before loading the new module: rmmod e1000e; modprobe e1000e6. Assign an IP address to the interface by entering the following, where x is the interface number: ifconfig ethx <IP_address>7. Verify that the interface works. Enter the following, where <IP_address> is the IP address for another machine on the same subnet as the interface that is being tested: ping <IP_address>TROUBLESHOOTING: Some systems have trouble supporting MSI and/or MSI-X interrupts. If you believe your system needs to disable this style of interrupt, the driver can be built and installed with the command: # make CFLAGS_EXTRA=-DDISABLE_PCI_MSI installNormally the driver will generate an interrupt every two seconds, so ifyou can see that you're no longer getting interrupts incat /proc/interrupts for the ethX e1000e device, then this workaroundmay be necessary. Command Line Parameters=======================If the driver is built as a module, the following optional parametersare used by entering them on the command line with the modprobe commandusing this syntax: modprobe e1000e [<option>=<VAL1>,<VAL2>,...]The default value for each parameter is generally the recommended setting,unless otherwise noted.NOTES: For more information about the InterruptThrottleRate, RxIntDelay, TxIntDelay, RxAbsIntDelay, and TxAbsIntDelay parameters, see the application note at: http://www.intel.com/design/network/applnots/ap450.htm A descriptor describes a data buffer and attributes related to the data buffer. This information is accessed by the hardware.InterruptThrottleRate---------------------Valid Range: 0,1,3,100-100000 (0=off, 1=dynamic, 3=dynamic conservative)Default Value: 3The driver can limit the amount of interrupts per second that the adapterwill generate for incoming packets. It does this by writing a value to the adapter that is based on the maximum amount of interrupts that the adapter will generate per second.Setting InterruptThrottleRate to a value greater or equal to 100will program the adapter to send out a maximum of that many interruptsper second, even if more packets have come in. This reduces interruptload on the system and can lower CPU utilization under heavy load,but will increase latency as packets are not processed as quickly.The default behaviour of the driver previously assumed a static InterruptThrottleRate value of 8000, providing a good fallback value for all traffic types,but lacking in small packet performance and latency. The hardware can handle many more small packets per second however, and for this reason an adaptive interrupt moderation algorithm was implemented.Since 7.3.x, the driver has two adaptive modes (setting 1 or 3) in whichit dynamically adjusts the InterruptThrottleRate value based on the traffic that it receives. After determining the type of incoming traffic in the lasttimeframe, it will adjust the InterruptThrottleRate to an appropriate value for that traffic.The algorithm classifies the incoming traffic every interval intoclasses. Once the class is determined, the InterruptThrottleRate value is adjusted to suit that traffic type the best. There are three classes defined: "Bulk traffic", for large amounts of packets of normal size; "Low latency",for small amounts of traffic and/or a significant percentage of smallpackets; and "Lowest latency", for almost completely small packets or minimal traffic.In dynamic conservative mode, the InterruptThrottleRate value is set to 4000 for traffic that falls in class "Bulk traffic". If traffic falls in the "Low latency" or "Lowest latency" class, the InterruptThrottleRate is increased stepwise to 20000. This default mode is suitable for most applications.For situations where low latency is vital such as cluster orgrid computing, the algorithm can reduce latency even more whenInterruptThrottleRate is set to mode 1. In this mode, which operatesthe same as mode 3, the InterruptThrottleRate will be increased stepwise to 70000 for traffic in class "Lowest latency".Setting InterruptThrottleRate to 0 turns off any interrupt moderationand may improve small packet latency, but is generally not suitablefor bulk throughput traffic.NOTE: InterruptThrottleRate takes precedence over the TxAbsIntDelay and RxAbsIntDelay parameters. In other words, minimizing the receive and/or transmit absolute delays does not force the controller to generate more interrupts than what the Interrupt Throttle Rate allows.NOTE: When e1000e is loaded with default settings and multiple adapters are in use simultaneously, the CPU utilization may increase non- linearly. In order to limit the CPU utilization without impacting the overall throughput, we recommend that you load the driver as follows: modprobe e1000e InterruptThrottleRate=3000,3000,3000 This sets the InterruptThrottleRate to 3000 interrupts/sec for the first, second, and third instances of the driver. The range of 2000 to 3000 interrupts per second works on a majority of systems and is a good starting point, but the optimal value will be platform-specific. If CPU utilization is not a concern, use RX_POLLING (NAPI) and default driver settings.RxIntDelay----------Valid Range: 0-65535 (0=off)Default Value: 0This value delays the generation of receive interrupts in units of 1.024microseconds. Receive interrupt reduction can improve CPU efficiency ifproperly tuned for specific network traffic. Increasing this value addsextra latency to frame reception and can end up decreasing the throughputof TCP traffic. If the system is reporting dropped receives, this valuemay be set too high, causing the driver to run out of available receivedescriptors.CAUTION: When setting RxIntDelay to a value other than 0, adapters may hang (stop transmitting) under certain network conditions. If this occurs a NETDEV WATCHDOG message is logged in the system event log. In addition, the controller is automatically reset, restoring the network connection. To eliminate the potential for the hang ensure that RxIntDelay is set to 0.RxAbsIntDelay-------------Valid Range: 0-65535 (0=off)Default Value: 8This value, in units of 1.024 microseconds, limits the delay in which areceive interrupt is generated. Useful only if RxIntDelay is non-zero,this value ensures that an interrupt is generated after the initialpacket is received within the set amount of time. Proper tuning,along with RxIntDelay, may improve traffic throughput in specific networkconditions.TxIntDelay----------Valid Range: 0-65535 (0=off)Default Value: 8This value delays the generation of transmit interrupts in units of1.024 microseconds. Transmit interrupt reduction can improve CPUefficiency if properly tuned for specific network traffic. If thesystem is reporting dropped transmits, this value may be set too highcausing the driver to run out of available transmit descriptors.TxAbsIntDelay-------------Valid Range: 0-65535 (0=off)Default Value: 32This value, in units of 1.024 microseconds, limits the delay in which atransmit interrupt is generated. Useful only if TxIntDelay is non-zero,this value ensures that an interrupt is generated after the initialpacket is sent on the wire within the set amount of time. Proper tuning,along with TxIntDelay, may improve traffic throughput in specificnetwork conditions.Copybreak---------Valid Range: 0-xxxxxxx (0=off)Default Value: 256Usage: insmod e1000e.ko copybreak=128Driver copies all packets below or equaling this size to a fresh rxbuffer before handing it up the stack.This parameter is different than other parameters, in that it is asingle (not 1,1,1 etc.) parameter applied to all driver instances andit is also available during runtime at /sys/module/e1000e/parameters/copybreakSmartPowerDownEnable--------------------Valid Range: 0-1Default Value: 0 (disabled)Allows Phy to turn off in lower power states. The user can turn offthis parameter in supported chipsets.KumeranLockLoss---------------Valid Range: 0-1Default Value: 1 (enabled)This workaround skips resetting the Phy at shutdown for the initialsilicon releases of ICH8 systems.IntMode-------Valid Range: 0-2Default Value: 2 (0=legacy, 1=MSI, 2=MSI-X)Allows changing the interrupt mode at module load time, without requiring arecompile. If the driver load fails to enable a specific interrupt mode, thedriver will try other interrupt modes, from least to most compatible. The interrupt order is MSI-X, MSI, Legacy. If specifying MSI (IntMode=1) interrupts, only MSI and Legacy will be attempted.WriteProtectNVM---------------Valid Range: 0-1Default Value: 1 (enabled)This option is applicable only on ICHx (8256x) parts. By default, the NVM iswrite-protected in order to prevent malicious accesses of the mapped NVM control register space which could potentially corrupt the NVM resulting in
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -