LPFC 驱动程序发布说明

重要

从 8.0.17 版本开始,该驱动程序开始严格面向上游内核。因此,我们删除了旧内核(2.6.10 之前)的 #ifdef。如果要旧内核上运行此驱动程序,应该使用 8.0.16 版本。

对于 FC 远程端口和扩展属性支持的传输层拟议修改现在已包含在上游内核中,自 2.6.12 版本开始。我们不再需要为此支持提供补丁,也不需要支持旧内核和新内核的完整版本。

该驱动程序现在需要 2.6.12(如果是预发行版,则为 2.6.12-rc1)或更高版本的内核。

请注意这些依赖关系....

提供以下信息是为了提供关于驱动程序历史的更多背景信息,因为我们正在推动上游接受该驱动程序。

电缆拔出和临时设备丢失

在旧版本的 lpfc 驱动程序中,该驱动程序在内部对从中间层接收到的 I/O 进行排队。在拔出电缆、链路抖动或设备临时失去连接(由于其电缆被拔出、交换机重启或设备重启)的情况下,驱动程序可能会向中间层隐藏设备的消失。发送到 LLDD 的 I/O 将被短暂地排队,允许设备重新出现或链路恢复活动,而不会对系统产生意外的副作用。如果驱动程序不隐藏这些情况,I/O 将会被驱动程序报错,中间层将耗尽其重试次数,并且设备将被离线。需要手动干预才能重新启用设备。

支持 kernel.org 的社区已经推动了一项努力,以删除所有 LLDD 中的内部排队。其理念是,内部排队是不必要的,因为块层已经执行了排队。从 LLDD 中删除队列可以使 LLDD 更可预测且更简单。

作为 kernel.org 的一个潜在的新增功能,要求 8.x 驱动程序删除所有内部排队。Emulex 遵守了此要求。在解释此更改的影响时,Emulex 与社区合作修改了 SCSI 中间层的行为,以便 SCSI 设备可以在传输事件(如上所述)发生时临时暂停。

建议的补丁已发布到 linux-scsi 邮件列表。该补丁包含在 2.6.10-rc2(及更高版本)的补丁包中。因此,此补丁是标准 2.6.10 内核的一部分。

默认情况下,驱动程序期望内核中存在用于阻塞/解除阻塞接口的补丁。无需设置任何 #define 来启用支持。

内核支持

此源代码包仅针对上游内核。(请参阅此文件顶部的注释)。它依赖于正在缓慢迁移到 kernel.org 内核的接口。

目前,驱动程序需要 2.6.12(如果是预发行版,则为 2.6.12-rc1)内核。

如果需要用于旧内核的驱动程序,请使用 8.0.16 驱动程序源。

补丁

值得庆幸的是,目前不需要补丁。