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-tlb
或 balance-alb
)设置没有正确存储的 MAC 地址。当停止绑定时,这个 MAC 地址不会被恢复,并保留重复的 MAC。因此,重新建立绑定会失败,因为原始 MAC 地址不存在。这个版本改进了代码,以便在绑定关闭时正确恢复 MAC 地址。因此,与 qlcnic
设备的绑定可以正常工作。(BZ#1265058)