![LSI SAS2116 问题 - 在 Fedora 32 内核 5.8.* 上未检测到驱动器](https://linux22.com/image/757247/LSI%20SAS2116%20%E9%97%AE%E9%A2%98%20-%20%E5%9C%A8%20Fedora%2032%20%E5%86%85%E6%A0%B8%205.8.*%20%E4%B8%8A%E6%9C%AA%E6%A3%80%E6%B5%8B%E5%88%B0%E9%A9%B1%E5%8A%A8%E5%99%A8.png)
上周,我使用常规 DNF 更新过程更新了内核。重新启动时,我的 mdadm 阵列中没有检测到任何驱动器。我将问题缩小到内核问题,并使用较旧的内核进行启动。我等待了一周才进行下一次内核更新,然后再次运行该过程,希望这只是一个坏内核,但问题尚未解决。Dmesg 显示kernel: mpt2sas_cm0: failure at drivers/scsi/mpt3sas/mpt3sas_scsih.c:10790/_scsih_probe()!
在两个 5.8 内核上。经过一番研究,我很确定 Fedora 已经放弃了对 sas2116 控制器的支持(https://access.redhat.com/discussions/3722151?page=2),所以我要么需要找到这张卡的驱动程序,要么用 12gb/s 卡替换它。
您有什么建议?我在哪里可以找到适用于 Fedora 32 的此卡的驱动程序以及如何安装它们,或者用什么 12gb/s 卡来替换它比较好(该卡目前驱动安装了 12 个驱动器的 24 托架超微背板)?我目前使用的卡是 LSI 9201-16e。
答案1
该问题与较新的 Broadcom/LSI Tri-Mode 卡的驱动程序如何为最新驱动程序中非常高的 32455 默认队列深度分配大量 DMA 内存有关。这对于这些较旧的卡来说是个问题,因为它们使用相同的驱动程序,但如果原始 DMA 请求未完全分配,则不会执行释放所有 DMA 队列然后在 32 位边界上重新请求的逻辑。要解决该问题,您可以设置内核参数以将队列深度降低到 10000:
grubby --update-kernel=ALL --args="mpt3sas.max_queue_depth=10000"
您可以在此处找到更多详细信息:https://bugzilla.kernel.org/show_bug.cgi?id=209177