适用于 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(Kumeran 锁定丢失)

有效范围:

0,1

默认值:

1(启用)

此变通方法在 ICH8 系统的初始硅版本关机时跳过重置 PHY。

IntMode(中断模式)

有效范围:

0-2

默认值:

0

中断模式

0

传统

1

MSI

2

MSI-X

IntMode 允许在加载时控制驱动程序注册的中断类型。多队列支持需要 MSI-X,并且某些内核和内核 .config 选项的组合将强制使用较低级别中断支持。

此命令将显示每种中断类型的不同值

cat /proc/interrupts

CrcStripping(CRC 剥离)

有效范围:

0,1

默认值:

1(启用)

在将接收到的报文发送到网络堆栈之前,从报文中剥离 CRC。如果您的机器启用了 BMC,但在加载或启用驱动程序后无法接收 IPMI 流量,请尝试禁用此功能。

WriteProtectNVM(NVM 写入保护)

有效范围:

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