In RHEL 5.1 EMC is finding they are unable to discover more then 512 LUNS. The system is a Symm and it is configured to provide LUNS 257-2048. Tested with: $ cat /proc/scsi/scsi |grep scsi8 | wc –l 512 Output of a driver with debugging attached. It is not yet clear if this is a driver or system problem, but will ascertain and update...
It appears there are boot time parameters to the RHEL Linux scsi module that control this behaviour. This may not have been discovered during testing because a single target was not used to provide all the LUNS. Haifeng, could you try modifying your boot command line in /boot/grub.conf to include something like: scsi_mod.max_scsi_report_luns=4096
Marcus, I'm assuming this isn't a regression from RHEL 5.0?
At the moment it just looks like we need a release note or documentation. It seems the kernel needs a boot parameter to find more then 512 LUNS from a single target. It appears the testing for number of LUNS was done with multiple targets contributing to the total. So not a regression... Either Haifeng will get back to us or I will be able to work with QA here to look at the problem soon...
We were able to set max_report_luns in /etc/modprobe.conf and scan 1000+ devices. We've tried passing scsi_mod.max_scsi_report_luns on the grub boot line but it fails saying it's an unknown parameter.
(In reply to comment #4) > We've tried passing scsi_mod.max_scsi_report_luns on the grub boot > line but it fails saying it's an unknown parameter. That was probably caused by my mistake in an mail on the subject. The parameter name is max_report_luns. The value it is stored in in the code is max_scsi_report_luns. module_param_named(max_report_luns, max_scsi_report_luns, int, S_IRUGO|S_IWUSR); MODULE_PARM_DESC(max_report_luns, "REPORT LUNS maximum number of LUNS received (should be" " between 1 and 16384)"); So, scsi_mod.max_scsi_luns should work.
(In reply to comment #5) > So, scsi_mod.max_scsi_luns should work. That should be scsi_mod.max_report_luns. Brother.
I've prematurely closed this BZ. We were unable to get this to pass on the grub boot command line, see comment 6. We did use scsi_mod.max_report_luns=4096 and it returned the error. Please advise.
Documentation/kernel-parameters.txt says: Module parameters for loadable modules are specified only as the parameter name with optional '=' and value as appropriate, such as: modprobe usbcore blinkenlights=1 Module parameters for modules that are built into the kernel image are specified on the kernel command line with the module name plus '.' plus parameter name, with '=' and value if appropriate, such as: usbcore.blinkenlights=1 -------------------- Our problem is that scsi_mod is not built in to the kernel. It is loaded after the kernel, too late for the command-line options to be applied. Looks like modprobe.conf is the way to go. Sorry about that. By the way, you can have the user check to make sure the parameter took effect by looking at cat /sys/module/scsi_mod/parameters/max_report_luns A user can also change it there echo 4096 > /sys/module/scsi_mod/parameters/max_report_luns after the module is loaded. But then they would have to use additional sysfs writes to cause a rescan of the targets. Not very practical.