Intel(R) 以太网网络连接的 Linux 驱动程序¶
Intel 千兆以太网 Linux 驱动程序。版权所有(c) 2008-2018 Intel Corporation。
目录¶
识别您的适配器
命令行参数
其他配置
支持
识别您的适配器¶
有关如何识别您的适配器以及最新的 Intel 网络驱动程序的信息,请参阅 Intel 支持网站:https://www.intel.com/support
命令行参数¶
如果驱动程序是作为模块构建的,则以下可选参数通过使用 modprobe 命令以以下语法在命令行中输入来使用
modprobe e1000e [<option>=<VAL1>,<VAL2>,...]
系统中此驱动程序支持的每个网络端口都需要一个 <VAL#>。这些值将按功能顺序应用于每个实例。例如
modprobe e1000e InterruptThrottleRate=16000,16000
在这种情况下,系统中有两个由 e1000e 支持的网络端口。除非另有说明,否则每个参数的默认值通常是建议的设置。
注意:描述符描述数据缓冲区和与数据缓冲区相关的属性。硬件会访问此信息。
InterruptThrottleRate¶
- 有效范围:
0,1,3,4,100-100000
- 默认值:
3
中断节流率控制每个中断向量每秒可以生成的中断数。增加 ITR 会降低延迟,但会增加 CPU 利用率,尽管在某些情况下可能会提高吞吐量。
将 InterruptThrottleRate 设置为大于或等于 100 的值会将适配器编程为每秒最多发送那么多中断,即使有更多数据包到达也是如此。这减少了系统上的中断负载,并可以降低重负载下的 CPU 利用率,但会增加延迟,因为数据包的处理速度不够快。
驱动程序的默认行为之前假设 InterruptThrottleRate 的静态值为 8000,为所有流量类型提供了良好的后备值,但在小数据包性能和延迟方面有所欠缺。但是,硬件可以每秒处理更多的小数据包,因此实现了一种自适应中断调节算法。
驱动程序有两种自适应模式(设置 1 或 3),它会根据接收到的流量动态调整 InterruptThrottleRate 值。在确定上个时间段内传入流量的类型后,它会将 InterruptThrottleRate 调整为适合该流量类型的值。
该算法将每个时间间隔内的传入流量分类。一旦确定了类别,InterruptThrottleRate 值就会调整为最适合该流量类型的值。定义了三个类别:“批量流量”,用于大量正常大小的数据包;“低延迟”,用于少量流量和/或很大比例的小数据包;以及“最低延迟”,用于几乎完全是小数据包或最小流量。
- 0:关闭
关闭任何中断调节,并可能提高小数据包延迟。但是,由于较高的中断率增加了 CPU 利用率,因此这通常不适合批量吞吐量流量。
- 1:动态模式
此模式尝试调节每个向量的中断,同时保持非常低的延迟。这有时会导致额外的 CPU 利用率。如果计划在延迟敏感的环境中部署 e1000e,则应考虑此参数。
- 3:动态保守模式(默认)
在动态保守模式下,对于属于“批量流量”类别的流量,InterruptThrottleRate 值设置为 4000。如果流量属于“低延迟”或“最低延迟”类别,则 InterruptThrottleRate 会逐步增加到 20000。此默认模式适用于大多数应用程序。
- 4:简化的平衡模式
在简化模式下,中断率基于 TX 和 RX 流量的比率。如果每秒字节数大致相等,则中断率将降至每秒 2000 个中断。如果流量主要是发送或主要是接收,则中断率可能高达 8000。
- 100-100000:
将 InterruptThrottleRate 设置为大于或等于 100 的值会将适配器编程为每秒最多发送那么多中断,即使有更多数据包到达也是如此。这减少了系统上的中断负载,并可以降低重负载下的 CPU 利用率,但会增加延迟,因为数据包的处理速度不够快。
注意:InterruptThrottleRate 优先于 TxAbsIntDelay 和 RxAbsIntDelay 参数。换句话说,最小化接收和/或发送绝对延迟不会强制控制器生成比中断节流率允许的更多中断。
RxIntDelay¶
- 有效范围:
0-65535 (0=关闭)
- 默认值:
0
此值以 1.024 微秒为单位延迟接收中断的生成。如果针对特定网络流量进行了适当的调整,接收中断减少可以提高 CPU 效率。增加此值会增加帧接收的额外延迟,并可能最终降低 TCP 流量的吞吐量。如果系统报告丢弃的接收,则此值可能设置得太高,导致驱动程序耗尽可用的接收描述符。
警告:当将 RxIntDelay 设置为 0 以外的值时,适配器可能会在某些网络条件下挂起(停止传输)。如果发生这种情况,系统事件日志中会记录一条 NETDEV WATCHDOG 消息。此外,控制器会自动重置,从而恢复网络连接。为了消除挂起的可能性,请确保 RxIntDelay 设置为 0。
RxAbsIntDelay¶
- 有效范围:
0-65535 (0=关闭)
- 默认值:
8
此值以 1.024 微秒为单位,限制生成接收中断的延迟。此值确保在设置的时间内收到初始数据包后会生成中断,这仅在 RxIntDelay 非零时才有用。通过与 RxIntDelay 一起适当调整,可以在特定网络条件下提高流量吞吐量。
TxIntDelay¶
- 有效范围:
0-65535 (0=关闭)
- 默认值:
8
此值以 1.024 微秒为单位延迟发送中断的生成。如果针对特定网络流量进行了适当的调整,发送中断减少可以提高 CPU 效率。如果系统报告丢弃的发送,则此值可能设置得太高,导致驱动程序耗尽可用的发送描述符。
TxAbsIntDelay¶
- 有效范围:
0-65535 (0=关闭)
- 默认值:
32
此值以 1.024 微秒为单位,限制生成发送中断的延迟。它仅在 TxIntDelay 非零时才有用。它确保在设置的时间内在线路上发送初始数据包后会生成中断。通过与 TxIntDelay 一起适当调整,可以在特定网络条件下提高流量吞吐量。
copybreak¶
- 有效范围:
0-xxxxxxx (0=关闭)
- 默认值:
256
驱动程序将所有小于或等于此大小的数据包复制到新的接收缓冲区,然后再将其传递到堆栈。此参数与其他参数不同,因为它是一个应用于所有驱动程序实例的单个(而不是 1,1,1 等)参数,并且它也在运行时在 /sys/module/e1000e/parameters/copybreak 中可用。
要使用 copybreak,请键入
modprobe e1000e.ko copybreak=128
SmartPowerDownEnable¶
- 有效范围:
0,1
- 默认值:
0 (已禁用)
允许 PHY 在较低功耗状态下关闭。用户可以在支持的芯片组中关闭此参数。
KumeranLockLoss¶
- 有效范围:
0,1
- 默认值:
1 (已启用)
此解决方法跳过在 ICH8 系统的初始硅版本中关闭时重置 PHY。
IntMode¶
- 有效范围:
0-2
- 默认值:
0
值
中断模式
0
传统
1
MSI
2
MSI-X
IntMode 允许加载时控制驱动程序注册的中断类型。MSI-X 是多队列支持所必需的,某些内核和内核 .config 选项的组合将强制使用较低级别的中断支持。
此命令将显示每种中断类型的不同值
cat /proc/interrupts
CrcStripping¶
- 有效范围:
0,1
- 默认值:
1 (已启用)
在将接收到的数据包发送到网络堆栈之前,从接收到的数据包中剥离 CRC。如果您的计算机启用了 BMC,但在加载或启用驱动程序后无法接收 IPMI 流量,请尝试禁用此功能。
WriteProtectNVM¶
- 有效范围:
0,1
- 默认值:
1 (已启用)
如果设置为 1,则配置硬件以忽略 ICHx NVM 中 GbE 区域的所有写入/擦除周期(以防止 NVM 意外损坏)。可以通过在初始驱动程序加载期间将参数设置为 0 来禁用此功能。
注意:当通过将参数设置为零来启用 NVM 写入时,必须对机器进行电源循环(完全关闭/打开)。一旦 NVM 被锁定(通过驱动程序加载时参数为 1),除了通过电源循环外,无法解锁。
Debug¶
- 有效范围:
0-16 (0=无,...,16=全部)
- 默认值:
0
此参数调整系统日志中显示的调试消息级别。
其他功能和配置¶
巨型帧¶
通过将最大传输单元 (MTU) 更改为大于默认值 1500 的值来启用巨型帧支持。
使用 ifconfig 命令来增加 MTU 大小。例如,输入以下命令,其中 <x> 是接口编号
ifconfig eth<x> mtu 9000 up
或者,您可以使用 ip 命令,如下所示
ip link set mtu 9000 dev eth<x>
ip link set up dev eth<x>
此设置不会在重启后保留。可以通过在以下文件中添加 “MTU=9000” 使设置更改永久生效
对于 RHEL:/etc/sysconfig/network-scripts/ifcfg-eth<x>
对于 SLES:/etc/sysconfig/network/<config_file>
注意:巨型帧的最大 MTU 设置为 8996。此值与 9018 字节的最大巨型帧大小一致。
注意:不支持在 10 或 100 Mbps 下使用巨型帧,这可能会导致性能不佳或链路丢失。
注意:以下适配器将巨型帧大小的数据包限制为最大 4088 字节
Intel(R) 82578DM 千兆网络连接
Intel(R) 82577LM 千兆网络连接
以下适配器不支持巨型帧
Intel(R) PRO/1000 千兆服务器适配器
Intel(R) PRO/1000 PM 网络连接
Intel(R) 82562G 10/100 网络连接
Intel(R) 82562G-2 10/100 网络连接
Intel(R) 82562GT 10/100 网络连接
Intel(R) 82562GT-2 10/100 网络连接
Intel(R) 82562V 10/100 网络连接
Intel(R) 82562V-2 10/100 网络连接
Intel(R) 82566DC 千兆网络连接
Intel(R) 82566DC-2 千兆网络连接
Intel(R) 82566DM 千兆网络连接
Intel(R) 82566MC 千兆网络连接
Intel(R) 82566MM 千兆网络连接
Intel(R) 82567V-3 千兆网络连接
Intel(R) 82577LC 千兆网络连接
Intel(R) 82578DC 千兆网络连接
注意:如果系统上启用了 MACSec,则无法在基于 82579 的网络设备上配置巨型帧。
ethtool¶
该驱动程序利用 ethtool 接口进行驱动程序配置和诊断,以及显示统计信息。此功能需要最新的 ethtool 版本。请从以下网址下载:
https://linuxkernel.org.cn/pub/software/network/ethtool/
注意:在验证某些部件(例如,82578)上的启用/禁用测试时,在使用 ethtool 时需要在测试之间添加几秒钟。
速度和双工配置¶
在解决速度和双工配置问题时,您需要区分基于铜线的适配器和基于光纤的适配器。
在默认模式下,使用铜线连接的 Intel(R) 以太网网络适配器将尝试与其链路伙伴进行自动协商,以确定最佳设置。如果适配器无法使用自动协商与链路伙伴建立链路,您可能需要手动将适配器和链路伙伴配置为相同的设置,以建立链路并传递数据包。只有在尝试与不支持自动协商或已被强制设置为特定速度或双工模式的旧交换机链接时才需要这样做。您的链路伙伴必须与您选择的设置匹配。无法强制设置 1 Gbps 及更高的速度。使用自动协商通告设置手动设置 1 Gbps 及以上的设备。
速度、双工和自动协商通告通过 ethtool 实用程序进行配置。
注意:只有经验丰富的网络管理员才应手动强制设置速度和双工或更改自动协商通告。交换机上的设置必须始终与适配器设置匹配。如果将适配器配置为与交换机不同的设置,适配器性能可能会受到影响,或者适配器可能无法运行。
但是,使用光纤连接的 Intel(R) 以太网网络适配器不会尝试与其链路伙伴进行自动协商,因为这些适配器仅以全双工模式且仅以其本机速度运行。
启用网络唤醒 (WoL)¶
WoL 通过 ethtool 实用程序进行配置。
WoL 将在下次关机或重启期间在系统上启用。对于此驱动程序版本,为了启用 WoL,必须在关闭或暂停系统之前加载 e1000e 驱动程序。
注意:以下设备仅在端口 A 上支持网络唤醒:- Intel(R) PRO/1000 PT 双端口网络连接 - Intel(R) PRO/1000 PT 双端口服务器连接 - Intel(R) PRO/1000 PT 双端口服务器适配器 - Intel(R) PRO/1000 PF 双端口服务器适配器 - Intel(R) PRO/1000 PT 四端口服务器适配器 - Intel(R) 千兆 PT 四端口服务器 ExpressModule
支持¶
有关一般信息,请访问 Intel 支持网站:https://www.intel.com/support/
如果在使用受支持的适配器的受支持的内核上发布的源代码中发现问题,请将与该问题相关的具体信息发送电子邮件至 intel-wired-lan@lists.osuosl.org。