| Summary: | ISCSI related modules ( such as cxgb3i ) are loaded even if no ISCSI device (such as Chelsio) is installed on some beaker machines | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 5 | Reporter: | Qian Hong <qhong> | ||||
| Component: | iscsi-initiator-utils | Assignee: | Mike Christie <mchristi> | ||||
| Status: | CLOSED DUPLICATE | QA Contact: | Red Hat Kernel QE team <kernel-qe> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 5.8 | CC: | coughlan, mchristi, nhorman | ||||
| Target Milestone: | rc | ||||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2012-03-02 21:45:00 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Attachments: |
|
||||||
|
Description
Qian Hong
2012-02-27 09:42:22 UTC
Created attachment 565999 [details]
Log: configure files for udev
.
|-- makedev.d
| `-- 50-udev.nodes
`-- rules.d
|-- 05-udev-early.rules
|-- 40-multipath.rules
|-- 50-udev.rules
|-- 51-hotplug.rules
|-- 60-net.rules
|-- 60-pcmcia.rules
|-- 60-raw.rules
|-- 85-pcscd_ccid.rules
|-- 90-dm.rules
|-- 90-hal.rules
|-- 95-pam-console.rules
`-- bluetooth.rules
I've taken a look at this, and its a user space problem. the iscsid start script (/etc/init.d/iscsid) unilaterally loads all the iscsi transport modules. While this probably makes some sense (you can't know which iscsi transport a user wants to use at the time you start the daemon), the daemon can do a better job by only loading those transports for which underlying hardware is available (except for iscsi_tcp, which will always need to be loaded). I expect what it can do is: 1) build a list of iscsi enabled network drivers 2) scan /sys/class/net/<if>/device/driver/module. If the basename of that symlink matches an item on the list in (1), load the corresponding iscsi_transport (i.e. load cxgb3i if one of the network interfaces is driven by the cxgb3 driver). 3) add some udev rules to monitor for module load events, and, if iscsid is running, load the corresponding iscsi transport module. If we do that, we should only load the iscsi transport modules for the hardware that we have available on a given system. This is a dup of https://bugzilla.redhat.com/show_bug.cgi?id=723669 We are just going to have iscsiadm load the module when there is a command that is run that wants to use it. For upstream we are going to use the kmod lib. For RHEL it turned out we are not supporting that lib, so I have to do some modprobe magic kexec call from what I understand. *** This bug has been marked as a duplicate of bug 723669 *** |