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:
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:
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.
EDIT: I had to remove links because I’m a new user…