The first basic function for a multi path (MP) driver is to identify the set of block devices that can be supported. The device discovery is generally triggered when the MP driver is loaded into the operating system (OS) as part of boot process. During early boot, not all devices connected to the system may be available. For example, the devices connected using the fibre channel (FC) cables may not be available during early boot time unless there is special support from the bootstrap, which is usually from NVRAM or EEPROM, to identify the fibre channel devices. In any case, it may be required for a MP driver to rescan the OS device tree at a later stage of boot process.
One of the biggest challenges in device discovery is the ability and skill of MP driver to discover disk devices and their attributes in a non-intrusive fashion such that the disk media is not touched. In other words, the device discovery has to be purely read-only operations to identify the disk and disk...