Red Hat Bugzilla – Bug 159678
delay needed after loading 3w-9xxx before root becomes visible
Last modified: 2014-12-01 18:08:13 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Fedora/1.0.4-1.3.1 Firefox/1.0.4
Description of problem:
The 'init' script created my mkinitrd assumed that immediately after insmod 3w-9xxx, it should be able to mount the root filesystem, but the 3w-9xxx driver takes 2-3 seconds to scan for the arrays and make them visible to the system. As-is, the initrd will fail (unable to mount root), because the root filesystem doesn't exist yet.
By manually editing the init script and re-packing the initrd, I can make it properly mount the root fs by adding:
right after the insmod 3w-9xxx.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. mkinitrd as usual on a system with 3w-9xxx.
3. watch the initrd fail to mount the root fs.
Actual Results: initrd fails to mount the root fs.
Expected Results: Wait for the 3w-9xxx initialization to complete before proceeding, or retry mounting the rootfs every few seconds until some timeout (say 30 seconds) before failing.
I classify this a "Normal" severity, not low, because the loss of functionality is not minor (system won't boot), and the workaround, although not overly complex, is time consuming and awkward as the initrd must be manually fixed each mkinitrd is used.
I see that mkinitrd already has special cases for block device modules that
require a delay after loading. For example, the usb-storage module. I have added
an identical special case for the 3w-9xxx module with a 5 second sleep, and now
I can boot consistently without having to manually hack the initrd. Please add
this fix to mkinitrd.