Little bit of background mpt2sas and mpt3sas were merged some time ago, however some mpt2sas cards are by default not handled correctly by mpt3sas. I have one such card. (An LSI SAS2116 PCI-Express FusionMPT SAS-2)
Using Fedora 32, I have two kernels in the grub 2 menu:
5.7.7-200.fc32.x86_64
5.11.22-100.fc32.x86_64
The 5.7 kernel boots just fine. When I boot to the 5.11 kernel no drives are detected by the initramfs because the mpt3sas kernel module fails to correctly allocate memory for my SAS card that Iām using. After giving the root password for maintenance I can see the errors using ājournalctlā:
mpt2sas_cm0: reply_pool: dma_pool_alloc failed
mpt2sas_cm0: failure at drivers/scsi/mpt3sas/mtp3sas_scsih.c:12013/scsih_probe()!
According to this kernal bug report the solution is to reduce the mpt3sas.max_queue_depth from the large default value of 32455 to something much smaller like 10000.
Iām not familiar with how Fedora handles the Kernel: DNF and dracut are strange to me. I feel totally lost. How do I modify the mpt3sas.max_queue_depth?
Iāve learned a little about using dracut to update the initramfs from this Fedora Magazine article DEFINITLY_NOT_AN_HTTPS_LINK-fedoramagazine.org/initramfs-dracut-and-the-dracut-emergency-shell/
Iāve learned a little about manually upgrading the kernel and grub2 parameters from this fedora doc DEFINITLY_NOT_AN_HTTPS_LINK-docs.fedoraproject.org/en-US/fedora/latest/system-administrators-guide/kernel-module-driver-configuration/Manually_Upgrading_the_Kernel/ Although I think that article goes much further that I need to go; itās helpful, but itās meant to help accomplish something completely different.
Do I need to make the change in a config file (Of some kind?) for the initramfs and remake the initramfs using dracut? Can I do that from within the functioning kernel 5.7, or do I need to do that from within the emergency shell?
Do I need to add mpt3sas.max_queue_depth=10000 as a grub2 command line parameter? Do I just modify /etc/default/grub and then run " grub2-mkconfig -o /boot/grub2/grub.cfg" - [I donāt know what that modification would look like⦠an example would be really helpful.]
Do I need to use DNF to somehow modify and rebuild the kernel. I have built many custom kernels and several initramfs before; but never with a distribution like Fedora. So far very confused by how itās done in Fedora.
I found where the kernel module is:
/usr/lib/modules/5.11.22-100.fc32.x86_64/kernel/drivers/scsi/mpt3sas/mpt3sas.ko.xz
Maybe I could use menuconfig to find and modify this parameter and then use DNF and dracut to rebuild both the kernel and the initramfs?
This problem is probably the same problem referenced in this ask.fedoraproject post:
Iām very tired, Iām proud that I got this far, but I canāt think straight any more. Please if you have any idea which direction I need to do with this problem Iād really appreciate any help.
Thank you!
- Josiah
EDIT: I had to remove links because Iām a new userā¦