Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 28 章 硬件启用

主绑定接口不再接管没有失败的活跃接口

以前,primary_reselect=failure 绑定参数无法正常工作。即使其他接口没有失败,也始终接管主接口。在这个版本中,该参数可以正常工作,只有在当前非主活跃接口失败时主绑定接口才会接管。(BZ#1301451)

在 IBM Power Systems 的 little-endian 变体失败的 updatepp 操作中会阻止内存崩溃

在以前的版本中,IBM Power Systems 的 little-endian 变体上的 updatepp 操作有时会导致在页表中将错误的哈希值用于下一个哈希插入操作。这可能导致更新散列页表条目(PTE)操作或未无效的哈希 PTE 操作丢失,并可能导致内存崩溃。在这个版本中,在 updatepp 操作失败后,哈希值总是被重新计算,这可以防止潜在的内存崩溃。(BZ#1264920)

删除 USB 设备不再会导致竞争条件

在以前的版本中,删除 USB 设备会导致同步问题,这可能会导致竞争条件。因此,内存损坏,这会导致 USB 主机控制器失败。在这个版本中,计时器已足够早初始化,这可以防止出现竞争条件,且 USB 主机控制器不再失败。(BZ#1290202)

内核现在在 AMD Turion II 系统中引导

在以前的版本中,由于 tick broadcast code 中的 livelock,AMD Turion II 系统在某些情况下被锁定并在引导过程中变得无响应。有了这个更新,livelock 已被修复,内核现在在 AMD Turion II 系统中更可靠引导。(BZ#1265283)

因为运行时锁定争用,有许多 CPU 的实时系统不再具有大量延迟

在以前的版本中,在实时系统中,多个 CPU 会尝试使用一个 rq 锁定,这会导致锁定争用和延迟。延迟乘以 CPU 数量,这会导致有多个 CPU 的系统具有大量延迟。有了这个更新,超过 32 个内核的系统使用 推送 方法而不是 拉取,这可防止关键区域中的 CPU 长列表。因此,由于运行时锁定争用,有许多 CPU 的实时系统不再具有大量延迟。(BZ#1209987)

当使用 NVM Express 设备驱动程序启用多队列支持时,内核不再在引导时崩溃

由于核心块设备代码中的一个错误,内核在某些情况下,当对 Nonvolatile Memory Express (NVMe)设备驱动程序启用多队列支持时,内核会在启动时意外终止。此问题在 nvme 驱动程序中观察到,但其他块设备也可能会受到影响。在这个版本中,这个程序错误已被解决,内核在上述情况下不再崩溃。(BZ#1303255)

CPU 频率现在达到请求的值

在以前的版本中,intel_pstate 驱动程序会错误地舍入 CPU 频率值。因此,CPU 频率低于请求的用户。在这个版本中,舍入错误已被修复,CPU 频率现在达到请求的值。(BZ#1279617)

修复了 FCoE 代码的实时内核调度代码

实时内核光纤通道(FCoE)驱动程序已改为使用 get_cpu_light ()put_cpu_light () 函数,而不是更常见的 get_cpu ()put_cpu () 函数。但是,get_cpu () 的一个发生没有更改为 get_cpu_light ()。因此,禁用了抢占,在 FCoE 代码中出现 原子错误时调度 BUG: 调度。在这个版本中,代码已被修复,错误不再发生。(BZ#1258295)

未报告 PCI 适配器的 NUMA 节点不再降低了 IBM Power 系统的性能

在以前的版本中,因为一个回归,PCI 适配器不会报告 Non-Uniform Memory Access (NUMA)节点。这会导致使用 Red Hat Enterprise Linux 7 部署的每个 IBM Power 系统的性能显著降低。在这个版本中,回归问题已被修复,在这种情况下,系统性能不再会降低。(BZ#1273978)

在设置 DMA 传输时系统不再崩溃

由于输入/输出内存管理单元(IOMMU)页面大小不一致,Non-volatile Memory Express (NVMe)设备和内核,之前在 nvme_setup_prps () 函数中出现的 BUG_ON 信号。这可能会导致系统意外终止,同时设置直接内存访问(DMA)传输。在这个版本中,默认的 NVMe 页面大小被设置为 4 KB,系统崩溃不再发生。(BZ#1245140)

在热拔过程中内核不再挂起

由于可重试的命令错误,NVMe 驱动程序之前会泄漏 I/O 描述符和 DMA 映射。因此,如果删除了驱动器,则内核可能会在热拔操作过程中变得无响应。在这个版本中解决了命令重试时的驱动程序内存泄漏的问题,内核在这种情况下不再挂起。(BZ#1271860)

禁用大 Receive Offload (LRO)标记现在可以正确地传播

在以前的版本中,禁用大 Receive Offload (LRO)标记不会从 vlan 和 bond 层次结构中的上述设备传播 Downwards。因此,流量流会破坏。在这个版本中,这个问题已被解决,并禁用 LRO 标志。(BZ#1266578)

在 Intel Xeon v5 平台上切换 P-states 现在可以成功

在以前的版本中,在 Intel Xeon v5 平台上,处理器频率始终与最大可能的频率关联。因此,在这些客户端平台上切换 P-states 会失败。在这个版本中,通过确定范围并调整最小和最大百分比限制值来设置闲置频率、忙碌频率和处理器频率值。因此,在这些客户端平台上切换 P-states 现在可以成功。(BZ#1264990)

cpuscaling 测试不再失败

在以前的版本中,因为 intel-pstate 驱动程序中存在大量错误,红帽硬件认证测试套件的 cpuscaling 测试会失败。这个程序错误已被解决,cpuscaling 测试现在通过非常强大的硬件上。(BZ#1263866)

genwqe 驱动程序可以在内存压力期间分配内存

genwqe 设备驱动程序以前使用 GFP_ATOMIC 标志从内核的原子内存池中分配连续内存页面 - 即使在非原子情况下也是如此。这可能会导致在内存压力期间分配失败。在这个版本中,genwqe 驱动程序的内存分配使用 GFP_KERNEL 标志,驱动程序也可以在内存压力情况期间分配内存。(BZ#1270244)

禁用 CPU 时控制台不再挂起

在以前的版本中,当使用实时内核中的 CPU 热插拔 接口禁用 CPU 时,热插拔 锁定和控制台 semaphore 可能会以不正确的顺序获取。这可能会导致系统控制台变得无响应。在这个版本中,以正确顺序获取锁定,控制台不再挂起。(BZ#1269647)

现在,ixgbe 驱动程序中默认禁用 LRO

因为 Large Receive Offload (LRO)与转发和桥接不兼容,并可能导致性能问题和不稳定,现在在 ixgbe 驱动程序中默认禁用。
启用 LRO:
# ethtool -K ethX lro on
ethX 替换为接口的名称。(BZ#1266948)

IBM Power 系统的 nx842 co-processor 不再提供损坏的数据

在以前的版本中,在某些情况下,IBM Power Systems 的 nx842 co-processor 可能会提供无效的数据。这是因为在未压缩过程中发生的数据崩溃错误所致。在这个版本中,对 nx842 co-processor 的所有压缩和未压缩的调用都包含 cyclic 冗余检查(CRC)标记。这会强制所有压缩和未压缩操作来检查数据完整性,并防止 co-processor 提供损坏的数据。(BZ#1264905)

在调用 mlx4_en_recover_from_oom () 函数时,系统不再崩溃

在以前的版本中,当 mlx4_en 驱动器在高 TCP 流下调用 mlx4_en _recover_from_oom () 函数时,操作系统会意外终止。这个更新修复了这个程序错误,系统在此场景中不再崩溃。(BZ#1258136)

iw 正确显示规范信息

在以前的版本中,iw 工具在使用 iw reg set 命令设置后无法正确显示规范国家。这个版本会调整 iw 代码,使其更接近 Red Hat Enterprise Linux 无线代码。因此,iw 会如预期显示规范国家信息。(BZ#1324096)

i40e 不再在引导过程中发出 warn_slowpath 警告

在以前的版本中,i40e 驱动程序会在环大小更改时发出 warn_slowpath 警告,因为代码正在克隆 rx_ring struct,但在分配新内存前不会归零指针。在这个版本中,这个程序错误已被修复,不再显示警告。(BZ#1272833)

netprio_cgroups 模块现在在引导时挂载

在以前的版本中,systemd/sys/fs/cgroup/ 目录挂载为只读,这会阻止在初始系统设置期间挂载 /sys/fs/cgroup/net_prio/ 目录。因此,netprio_cgroups 模块没有在引导时挂载。有了这个更新,这个问题已被解决,netprio_cgroups 模块现在在引导时挂载。(BZ#1262204)

使用 qlcnic 设置绑定不再失败

在此次更新之前,某些绑定模式(如 balance-tlbbalance-alb )设置没有正确存储的 MAC 地址。当停止绑定时,这个 MAC 地址不会被恢复,并保留重复的 MAC。因此,重新建立绑定会失败,因为原始 MAC 地址不存在。这个版本改进了代码,以便在绑定关闭时正确恢复 MAC 地址。因此,与 qlcnic 设备的绑定可以正常工作。(BZ#1265058)