Red Hat Enterprise Linux Diagnostics and Troubleshooting
Configure parameters for a kernel module.
Outcomes
You should be able to configure module options for loadable kernel modules.
As the student user on the workstation machine, use the lab command to prepare your system for this exercise.
[student@workstation ~]# lab start hardware-kernelmodules
This command confirms that your systems are reachable.
Instructions
The servera system has an attached SAS RAID array that uses the megaraid_sas.ko kernel module. Unfortunately, performance is unpredictable, and sometimes error messages about MSI-X interrupts appear in the logs.
After opening a support case, you are asked to disable MSI-X interrupt handling in the driver to test whether this configuration fixes the issue.
Log in to
serveraand switch to therootuser.[student@workstation ~]$
ssh student@servera...output omitted... [student@servera ~]$sudo -i[sudo] password for student:student[root@servera ~]#View the kernel module options for the
megaraid_sas.kokernel module. Locate the option for MSI-X interrupt handling, load the module, and verify that this option is applied. Unload the module before continuing.View the options for the
megaraid_sas.kokernel module:[root@servera ~]#
modinfo -p megaraid_saslb_pending_cmds:Change raid-1 load balancing outstanding threshold. Valid Values are 1-128. Default: 4 (int) max_sectors:Maximum number of sectors per IO command (int) msix_disable:Disable MSI-X interrupt handling. Default: 0 (int) msix_vectors:MSI-X max vector count. Default: Set by FW (int) allow_vf_ioctls:Allow ioctls in SR-IOV VF mode. Default: 0 (int) ...output omitted...Locate the MSI-X interrupt handling option.
[root@servera ~]#
modinfo -p megaraid_sas | grep -i msimsix_disable:Disable MSI-X interrupt handling. Default: 0 (int) msix_vectors:MSI-X max vector count. Default: Set by FW (int)The
msix_disableoption is the relevant choice.Load the
megaraid_sas.kokernel module manually.[root@servera ~]#
modprobe -v megaraid_sasinsmod /lib/modules/4.18.0-305.el8.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xzVerify that the
msix_disabledefault (value0) is the current value.[root@servera ~]#
cat /sys/module/megaraid_sas/parameters/msix_disable0Unload the
megaraid_sas.komodule.[root@servera ~]#
modprobe -rv megaraid_sasrmmod megaraid_sas
Configure the
megaraid_sas.komodule to always setmsix_disable=1. This option is applied whether the module is loaded manually or automatically. For easy copying of this configuration to other systems, use a separate configuration file. Verify that the new configuration is applied correctly.Create a file called
/etc/modprobe.d/megaraid.confwith the following entry:options megaraid_sas msix_disable=1
Load the
megaraid_sas.kokernel module.[root@servera ~]#
modprobe -v megaraid_sasinsmod /lib/modules/4.18.0-305.el8.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz msix_disable=1Verify that your new setting is applied correctly.
[root@servera ~]#
cat /sys/module/megaraid_sas/parameters/msix_disable1
Return to
workstationas thestudentuser.[root@servera ~]#
exit[student@servera ~]$exit[student@workstation ~]$