[Bug 823645] New: scsi_dh* modules are loaded unconditionally
https://bugzilla.novell.com/show_bug.cgi?id=823645 https://bugzilla.novell.com/show_bug.cgi?id=823645#c0 Summary: scsi_dh* modules are loaded unconditionally Classification: openSUSE Product: openSUSE 12.3 Version: Final Platform: x86-64 OS/Version: openSUSE 12.3 Status: NEW Severity: Minor Priority: P5 - None Component: Basesystem AssignedTo: mmarek@suse.com ReportedBy: jdelvare@suse.com QAContact: qa-bugs@suse.de CC: hare@suse.com, arvidjaar@gmail.com Found By: Community User Blocker: --- mkinitrd unconditionally includes and loads the following kernel modules: * scsi_dh * scsi_dh_alua * scsi_dh_emc * scsi_dh_hp_sw * scsi_dh_rdac This was done as a consequence of bug #727428. These modules are only needed when multipathing is in use, which only concerns a small number of systems. Thus these modules should not be loaded unconditionally. Doing so increases the size of the initrd, slows down the boot process, and eats memory for no good reason. Just because they are small is no excuse for not doing things properly. Loading 5 modules takes time, on every boot of every openSUSE system. The scsi_dh* modules should only be enabled on systems using multipath. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=823645 https://bugzilla.novell.com/show_bug.cgi?id=823645#c1 --- Comment #1 from Hannes Reinecke <hare@suse.com> 2013-06-06 11:34:52 UTC --- This is does have nothing to do with multipathing. Even with multipathing disabled you want to load these modules if you talk to LUNs from certain arrays. The reason why these modules are preloaded is that the need to be _present_ by the time the system probes for these LUNs. If they are not probing will take _ages_. Hence you cannot delegate the task to udev, as by the time udev kicks in the devices are already probed for. And you've already suffered the delay. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=823645 https://bugzilla.novell.com/show_bug.cgi?id=823645#c2 Jean Delvare <jdelvare@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO InfoProvider| |hare@suse.com --- Comment #2 from Jean Delvare <jdelvare@suse.com> 2013-06-07 02:49:43 UTC --- Thanks for the clarification Hannes. But we are talking about real SCSI hardware here, aren't we? So why are these modules loaded on systems which do not have any real SCSI hardware? Also, why are these modules loaded by mkinitrd rather than by the drivers which need it? There is request_module() for that. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=823645 https://bugzilla.novell.com/show_bug.cgi?id=823645#c3 Hannes Reinecke <hare@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |NEW InfoProvider|hare@suse.com | --- Comment #3 from Hannes Reinecke <hare@suse.com> 2013-12-09 11:12:43 UTC --- Chicken-and-egg problem. The scsi_dh_* driver have to be present by the time SCSI disks are probed; if not you're likely to see I/O errors which not only causes confusion but also increase boot time (or stall the machine entirely). And the disks are probed during module_init() from any SCSI HBA driver. Ergo they have to be loaded prior to the SCSI HBA modules. But then there's no-one who would be able to call 'request_module' ... -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=823645 https://bugzilla.novell.com/show_bug.cgi?id=823645#c4 --- Comment #4 from Hannes Reinecke <hare@suse.com> 2013-12-09 11:17:14 UTC --- You probably could do some modprobe trickery (like loading the scsi_dh_* modules prior to load scsi_mod), but as scsi_mod is occasionally built in you would need to have those modules built-in, too. Back to square one here :-) -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=823645 https://bugzilla.novell.com/show_bug.cgi?id=823645#c5 Jean Delvare <jdelvare@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO InfoProvider| |hare@suse.com --- Comment #5 from Jean Delvare <jdelvare@suse.com> 2013-12-09 12:53:22 UTC --- But again we're only talking about actual SCSI hardware here, not SATA, right? I asked in comment #2 already but am under the impression that you only replied to my last question in that comment. I don't care if scsi_dh* modules are included and loaded on any system with a SCSI host adapter, even when that system doesn't need it. As soon as you have SCSI in a machine, you really don't care about initrd size and boot time. And your explanation in comments #3 and #4 convinced me there is no solution to this part of the problem anyway. What I really want is that systems which do NOT have SCSI at all, don't get these scsi_dh* modules in mkinitrd. We should be able to check for PCI devices with class 0100 (SCSI) and 0107 (SAS) and only include the scsi_dh* modules if at least one such device is present, right? I think we already do this kind of magic in mkinitrd for other devices, don't we? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=823645 https://bugzilla.novell.com/show_bug.cgi?id=823645#c6 Hannes Reinecke <hare@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |NEW InfoProvider|hare@suse.com | --- Comment #6 from Hannes Reinecke <hare@suse.com> 2013-12-09 14:21:23 UTC --- Not quite. You'd need: 0100 (SCSI HBA) 0104 (RAID Controller) 0107 (SAS controller) 0c00 (FireWire) 0c03 (USB) 0c04 (FibreChannel) 0c06 (InfiniBand) If you want to implement this, be my guest. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=823645 https://bugzilla.novell.com/show_bug.cgi?id=823645#c7 --- Comment #7 from Jean Delvare <jdelvare@suse.com> 2013-12-09 15:18:22 UTC --- If we include the modules as soon as we find any device from your class list in comment #6, I'm afraid it'll happen on 99% of the machines. And I'm probably being optimistic. All systems where I really would like scsi_dh* to not be loaded do have USB controllers. But SCSI over USB or FireWire, really, does anyone do that? And booting from such devices? This sounds crazy. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=823645 https://bugzilla.novell.com/show_bug.cgi?id=823645#c8 --- Comment #8 from Hannes Reinecke <hare@suse.com> 2013-12-09 17:06:36 UTC --- Guess which protocol USB-storage emulates ... We can probably do away with USB and Firewire. But booting from USB? Most definitely. Virtually _every_ CD-ROM which is not built-in is accessed via USB. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@novell.com