8. 内核更新
8.1. 一般内核特性支持
- Asymmetric Logical Unit Access (ALUA) support in device-mapper-multipath has been updated, adding explicit ALUA support for Clariion storage. Earlier versions of Red Hat Enterprise Linux 5 added support for implicit ALUA (i.e. the operating system is not aware of which storage device paths have optimized performance and which have non-optimized performance). If the operating system consistently sends I/O on a non-optimized path, then the storage device may transparently make that path optimized, improving performance and causing idle paths to become non-optimized.Red Hat Enterprise Linux 5.4 introduces explicit ALUA support for Clariion storage (i.e. the operating system exchanges information with the storage device and is able to select the paths that have optimized performance). (BZ#482737)
- 之前,对上游内核中裸设备的支持已经过时了。但现在内核中又包含了这个支持。因此在红帽企业版 Linux 5.4 中也包含了对裸设备的支持。另外还更新了初始化脚本软件包,添加了之前取消的支持裸设备的功能。(BZ#472891)
- 没有
mmu-notifiers
的 KVM guest-smp tlb 填充可损坏内存,因为 KVM 在另一个vcpu
仍通过客户端模式进行写入时在内核可用列表中添加页面。这个更新在内核中添加了mmu-notifier
支持,并修正了在之前的补丁中发现的一个 bug,即mm_struct
根据现有驱动程序增长并导致 kABI 检查失败。现通过使用位于不使用空白区中的索引来避免扩张结构大小修复了这个 bug。(Bugzilla #485718) - 之前在 Linux 内核中没有定义指针和签名算法溢出打包。这可能导致 GCC(GNU C 编译程序)假设打包没有发生并试图优化内核可能要求溢出测试的算法。这个更新在 GCC
CFLAGS
中添加了-fwrapv
值来定义打包行为。(Bugzilla #491266) - 最近 TPC-C(事务处理委员会)基准程序确定了导致在高端系统中进程竞争同一内存空间的问题。这个更新包含了
fast-gup
补丁,它可使用直接 IO 并提供显著性能改进(高达 9-10%)。这个更新经过完整测试并在 5.4 内核中使用以提供灵活性。有关详情请参考 article。(Bugzilla #474913) - 在这个内核这添加了一个新的可调节参数,它可让管理员修改
kupdate
每次运行时最多重复写入磁盘的更改页数。这个新的可调节/proc/sys/vm/max_writeback_pages
的默认值为1024
或者 4MB,这样每次重复kupdate
时最多可写出的页数为 1024。(Bugzilla #479079) - 在内核这添加了一个新选项来帮助每个进程的 IO 统计。这可在产品环境中帮助进行故障排除。(Bugzilla #461636)
- 在之前的内核中,备份进程会降低 DB2 服务器应答。这是由于
/proc/sys/vm/dirty_ratio
在超过半数的页缓冲内存被占用时阻止进程写入页缓冲内存造成的(即使将dirty_ratio
设为 100% 也是如此)。在这个内核更新中更改了这个限制行为。现在,当将dirty_ratio
设为 100% 时,系统将不再限制对页缓冲内存的写入。(Bugzilla #295291)。 - The
rd_blocksize
option found in the previous kernel's ramdisk driver was causing data corruption when using large ramdisks under a reasonable system load. This update removes the unnecessary option and resolves the data corruption issues. (Bugzilla #480663) getrusage
功能是用来检查进程的资源使用。它在诊断问题及收集资源使用数据时非常有用。在使用生成子进程线程的getrusage
询问进程的事件中,结果可能会不正确,因为getrusage
可能只检查父进程而不询问其子进程。这个更新应用了rusadge_thread
以便在这些事件中准确获得资源使用结果。(Bugzilla #451063)- 之前标头
/usr/include/linux/futex.h
会妨碍编译 C 源代码文件,从而导致出错。这个更新包含了更正有问题内核的补丁,从而定义并解决了编译错误。(Bugzilla #475790) - 在之前的内核中,panic 或者 oops 输出信息中不会识别该内核版本。这个更新在 oops 和 panic 输出中添加了内核版本详情。(Bugzilla #484403)
- 在发行本 2.6.18 中将该内核配置为为软件包 glibc 提供内核标头。那个进程导致无法正确标记各种文件。
serial_reg.h
文件没有被正确标记,且不包含在kernel_headers
rpm 中。这样就依次导致在构建其他 rpm 时出现问题。这个更新添加了serial_reg.h
文件并解决了问题。(Bugzilla #463538) - 在有些情况下,当为某个子线程生成的子进程调用
setpgid()
时,HP Unified Parallel C(UPC)产品中的进程管理器upcrund
会返回 ESRCH 结果并失败。这个更新包含了解决这个问题的补丁。(Bugzilla #472433) - 在
sysrq-t
中添加了显示有关运行中进程回溯信息的功能。这可帮助调试停滞系统。(Bugzilla #456588)
8.1.1. 调试
在红帽企业版 Linux 5.4 中,通过添加生成核转储的功能改进了内核调试。核转储(内存快照)在调试系统和内核崩溃时非常有用。在这个更新中,现在可能可以在使用大页面的系统中执行核转储。(BZ#470411)。另外,现在可从核转储文件(vmcore)中使用
makedumpfile
命令提取内核 panic 信息。(BZ#485308)
8.1.2. 安全性
- 这个更新将在之前内核中设定的内核密钥字段的最大长度从 32 个字符增加到 255 个字符。(Bugzilla #475145)
- 这个内核更新涉及了一个为更多人关注的安全问题,即非根用户可以使用 NFSD(网络文件系统守护进程)在文件系统中输出节点。这个更新为在文件系统掩码中使用 FSUID 0 的用户提供
CAP_MKNOD
和CAP_LINUX_IMMUTABLE
功能。 - 为达到联邦信息处理标准 140(FEPS140)证书的要求,这个更新包含了:
- 自我测试:
ansi_cprng
(Bugzilla #497891),ctr(aes)
模式(Bugzilla #497888),Hmac-sha512(Bugzilla #499463),rfc4309(ccm(aes))
. (Bugzilla #472386)。 - 生成 GRUB 在引导过程中执行 checksum 所依据的签名文件的代码。(Bugzilla #444632)
- 为模块符号将 DSA 密钥从 512 字节改为 1024 字节的代码。(Bugzilla #413241)
8.2. 一般平台支持
在内核高级配置和电源接口(ACPI)部署中添加了节流状态(T-State)通知支持。添加 T-State 通知改进了在数据中心对 Intel® 智能电源节点管理器技术的使用。((BZ#487567))
8.3. 驱动程序更新
8.3.1. 开放网络企业发布(OFED)驱动程序
开放网络联盟企业发布(OFED)是 Infiniband 和 iWARP 硬件诊断程序、Infiniband 网络管理守护进程、Infiniband/iWARP 内核模块载入程序以及使用远程直接内存访问(RDMA)技术编写应用程序的程序库和开发软件包的集合。红帽企业版 Linux 使用 OFED 软件栈作为用于 Infiniband/iWARP/RDMA 硬件支持的完整栈。
在红帽企业版 Linux 5.4 中,已将 OFED 的以下部分更新至上游版本 1.4.1-rc3。
- 远程直接内存访问(RDMA)标头 (BZ#476301)
- 可靠数据报套接字(Reliable Datagram Sockets,RDS)协议 (BZ#477065, BZ#506907)
- 套接字直接协议(SDP)(BZ#476301)
- SCSI RDMA 协议(SRP)(BZ#476301)
另外,已将以下 OFED 驱动程序更新至上游版本 1.4.1-rc3:
- 用于 Chelsio T3 网络设备产品系列的 cxgb3 和iw_cxgb3 驱动程序 (BZ#476301, BZ#504906)
- 用于基于 mthca InfiniBand HCA(主机通道适配器)的驱动程序 (BZ#476301, BZ#506097)
- qlgc_vnic 驱动程序 (BZ#476301)
注意
红帽密切跟踪上游 OFED 代码基以便最大限度提供这个开发技术的可用性。因此,红帽只能在次要版本间保留上游项目达到的 API/ABI 兼容性。这与红帽企业版 Linux 开发的通用实践有所不同。
8.3.2. 一般驱动程序更新
- 已将用于 Intel 5400 级内存控制器的驱动程序
i5400
更新至添加了对错误侦测与修正(EDAC)的支持。(BZ#462895) - 更新了用于 iic 总线接口的
i2c
驱动程序,添加了对 AMD SB800 产品线的支持。 - 已将
i2c-piix4
驱动程序更新至支持 Broadcom HT1100 芯片组。(BZ#474240) - 更新了 hpilo 驱动程序。(BZ#488964)
- 更新了用于 Davicom 以太网适配器的
dm9601
驱动程序。
8.3.3. 网络驱动程序更新
- Red Hat is no longer able to responsibly support the
ipw3945
wireless laptop network driver to the full levels of service, as the upstream company responsible for that driver has suspended maintenance efforts on the driver.Red Hat, following the guidance of the company responsible for the driver has migrated over to theiwl3945
driver (first introduced in Red Hat Enterprise Linux 5.3). Ongoing maintenance of driver issues associated with the 3945 hardware will be provided on theiwl3945
driver. All fresh/full installations of Red Hat Enterprise Linux 5.4 on systems with 3945 hardware will install the iwl3945 driver.Red Hat continues to provide theipw3945
driver in Red Hat Enterprise Linux 5.4 as a migration convenience. It is recommended that customers transition to theiwl3945
driver. Refer to the Red Hat Knowledgebase for details on how to transition if you are doing an update install from a system that had its full installation prior to Red Hat Enterprise Linux 5.4.Customers who report issues with theipw3945
driver may be referred to migrate to theiwl3945
driver for resolution. For example, there are known issues connecting to VPN concentrators present in theipw3945
driver which are resolved in theiwl3945
driver.注意
the use of the iwl3945 driver requires installing theiwl3945-firmware
package from the supplementary RHN channel. Package version 15.28.2.8-2 or later is required. (ieiwl3945-firmware-15.28.2.8-2
or later)Additionally, the device name, for example as it appears in the output of the`ifconfig`
command appears as eth0 (or eth1) when using theipw3945
driver, when using the iwl3945 driver it is identified as wlan0. - the bonding driver has been updated to the latest upstream version. This update, however has introduced symbol/ipv6 module dependency capabilities. Therefore, if IPv6 has been previously disabled (by inserting the
install ipv6 /bin/false
line in the/etc/modprobe.conf
file) an upgrade to the bonding driver in 5.4 will result in the bonding kernel module failing to load. Theinstall ipv6 /bin/false
line needs to be replaced withoptions ipv6 "disable=1
for the module to load properly. - 已将用于 Intel® I/O 加速技术(Intel® I/OAT)更新至版本 2.6.24。(BZ#436048)
- 已将用于 Intel® Gigabit 以太网适配器的
igb
驱动程序更新至版本 1.3.16-k2。这个更新还为igb
驱动程序启用了 GRO 支持。(BZ#484102, BZ#474881, BZ#499347) - 已更新了
igbvf
驱动程序,为 Intel 82576 Gigabit 以太网控制器提供虚拟功能支持。(BZ#480524) - 已将用于 Intel 10 PBetaCI 快速网络设备的
ixgbe
驱动程序更新至版本 2.0.8-k2。这个更新还为ixgbe
驱动程序启用了 GRP 支持。(BZ#472547, BZ#499347). - 已将用于 Broadcom NetXtreme II 网络设备的
bnx2
驱动程序更新至版本 1.9.3 (BZ#475567 BZ#476897 BZ#489519) - 已将用于 Broadcom Tigon3 以太网设备的
tg3
驱动程序更新至版本 3.96。(BZ#481715, BZ#469772)。这个驱动程序更新还添加了 5785F 和 50610M 设备支持。 (BZ#506205) - 添加了
cnic
驱动程序,它可为bnx2
网络设备提供互联网小型计算机系统接口支持。(BZ#441979) - 已将用于 Broadcom Everest 网络设备的
bnx2x
驱动程序更新至版本 1.45.105。(BZ#475481) - 添加了
bnx2i
驱动程序,它可为bnx2x
网络设备提供 iSCSI 支持。(BZ#441979) - 已更新了用于 Chelsio T3 网络设备产品线的 cxgb3 驱动程序,启用了 iSCSI TCP 减负引擎(TOE)和通用接受减负(Generic Receive Offload,GRO)支持。(BZ#439518, BZ#499347)
- 已将用于 NVIDIA nForce 设备的
forcedeth
以太网驱动程序更新至版本 0.62。(BZ#479740) - 更新了用于使用 Marvell Yukon 2 芯片组的以太网控制器的 sky2 驱动程序。(BZ#484712)
- 已将用于 Cisco 10G 以太网设备的 enic 驱动程序更新至版本 1.0.0.933。(BZ#484824)
- 已将用于 Intel PRO/1000 以太网设备的 e1000e 驱动程序更新至版本 1.0.2-k2。(BZ#480241)
- 添加了用于 Emulex Tiger Shark 汇集网络适配器的 be2net 驱动程序作为技术预览。
8.3.4. 存储驱动程序更新
- The
bnx2
driver now supports iSCSI. Thebnx2i
driver will access thebnx2
driver through thecnic
module to provide iSCSI offload support. To managebnx2i
, use theiscsi-initiator-utils
package. For instructions onbnx2i
configuration, please refer to section 5.1.2 of the/usr/share/docs/iscsi-initiator-utils-<version>/README
file. (BZ#441979 and BZ#441979)请注意这个发行本中的bnx2i
版本不支持 IPv6。 - 更新了
md
驱动程序来提供 bitmap merging。这个特性排除了在执行数据复制时对完全 resync 的需要。(BZ#481226) - 这个发行本中的
scsi
层有以下更新:- 现在上游
scsi_dh_alua
模块中包含scsi
驱动程序,这样就在这个发行本中添加了不对称逻辑单元访问(asymmetric logical unit access,ALUA)支持。要在使用dm-multipath
时使用scsi_dh_alua
模块,请在multipah.conf
中将alua
指定为hardware_handler
类型。(BZ#482737)请注意对于 EMC Clariion 设备,只支持单独使用scsi_dh_alua
或者dm-emc
。不支持同时使用scsi_dh_alua
和dm-emc
。 rdac_dev_list
结构现在包含md3000
和md3000i
条目。这允许用户享受iscsi_dh_rdac
提供的优势。(BZ#487293)- 修复了在磁盘格式化过程中导致 iSCSI iBFT 安装 panic 的 bug。(BZ#436791)
- 修复了在一些多路径环境中 iSCSI 故障切换的过程中导致内核 panic 的
iscsi_r2t_rsp
struct
问题。(BZ#484455)
- 已将
cxgb3
驱动程序更新为应用一些上游修复并为 iSCSI TOE 设备提供支持。(BZ#439518)请注意这个发行本中的cxgb3i
版本不支持 IPv6。 - 这个发行本包含新的
mpt2sas
驱动程序。这个驱动程序支持 LSI Logic 的 SAS-2 适配器产品线。SAS-2 将最大数据传输率从 3Gb/s 提高到 6Gb/s。mpt2sas
驱动程序位于drivers/scsi/mpt2sas
目录,老的mpt
驱动程序位于drivers/message/fusion
目录。(BZ#475665) - 已将
aacraid
驱动程序更新至版本 1.1.5-2461。这个更新采用一些上游修复解决了导致影响队列扫描、控制程序引导问题及其它问题的 bug。(BZ#475559) aic7xxx
驱动程序可增加最大 I/O 大小。这允许支持的设备(比如 SCSI 磁带设备)执行带较大缓冲的写入。- 已将
cciss
驱动程序更新至采用上游修复用于导致影响内存 BAR 查找、rebuild_lun_table
以及 MSA2012 扫描线程的 bug。这个更新还采用一些对cciss
的配置更新。 - 已将
fnic
驱动程序更新至版本 1.0.0.1039。它应用一些上游 bug 修复,更新libfc
和fcoe
模块,并添加了在运行时控制 debug 日志的信模块参数。(BZ#484438) ipr
驱动程序现在支持 MSI-X 中断。(BZ#475717)- 现在已将
lpfc
驱动程序更新至版本 8.2.0.48。这为未来的 OEM 程序启用了硬件支持。另外,这个更新还采用了以下 bug 修复:BZ#476738 和 BZ#509010- 现在支持虚拟的光纤通道切换。
- 现在可用轮询进行错误注意中断。
- 现在解决了在
vport create
和delete loop
中导致内存泄露的 bug。
在这个更新中,lpfc
驱动程序现在还支持 HBAnyware 4.1 和 OneConnect UCNA。(BZ#498524) - 已将
MPT fusion
驱动程序更新至版本 3.04.07rh v2。这采用了一些 bug 修复,其中包括:(BZ#475455)- 现在修复了阻止系统使用 PAE 内核启动的
MPT fusion
驱动程序 bug。 - 现已在驱动程序卸载时将控制程序设定为
READY_STATE
。 - 现在在将设备添加到传输层之前,
mptsas
驱动程序会执行TUR
(Test Unit Ready)和Report LUN
命令。
另外还复原了一个意外导致mptctl_ioctl()
发出很多无害内核出错信息的补丁。在这个发行本中,mptctl_ioctl()
不再发出这些内核出错信息。 - 已将
megaraid_sas
驱动程序更新至 4.08-RH1。这个更新采用了以下上游改进和修复:BZ#475574- 这个更新在驱动程序中添加了轮询模式。
- 现在修复了影响支持的磁带设备的 bug。在这个发行本中,现为发送到磁带设备的命令将
pthru
超时值设定为 O/S 层超时值。
- 已将
mvsas
驱动程序更新至版本 0.5.4。这采用了一些来自上游的修复和改进,并添加了 Marvell RAID 总线控制程序 MV64460、MV64461 和 MV64462 支持。(BZ#485126) - 已将
qla2xxx
驱动程序更新至版本 8.03.00.10.05.04-k,并支持使用集中改进因特网光纤通道适配器。在这个发行本中,qla2xxx
还采用了一些来自上游的 bug 修复,其中包括:BZ#471900、BZ#480204、BZ#495092 和 BZ#495094- 修正了
OVERRUN
在 4GB 和 8GB 适配器中操作时出现的误差。 - 现在所有
vports
更改任意不同步事件。 - 现在修复了导致使用 QLogic 2472 卡的内核 panic 的 bug。
- 如果
stop_firmware
第一次尝试超时则不会再试。 - 字段掩码值不再依赖固定的
optrom
大小。 - 修复了在多路径设备中的 I/O 过程中导致经常出现路径错误的 bug。(BZ#244967)
- 驱动程序源代码现在于 kABI 兼容。
- 现在在释放内存后将
dcbx
指针设定为NULL
。
除这些更新外,还将qla2xxx
驱动程序中的qla24xx
和qla25xx
固件更新至版本 4.04.09。 qla4xxx
驱动程序现在具有改进的驱动程序出错恢复功能。这个更新修复了导致驱动程序中如果没有在主机适配器中侦测到显著命令时阻止适配器恢复的 bug。(BZ#497478)- 这个发行本包含新的
qlge
驱动程序。这个驱动程序为 QLogic FCoE 10GB 适配器添加了以太网支持。(BZ#479288)