lkml.org 
[lkml]   [2004]   [Dec]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: waiting 10s before mounting root filesystem?
    On Fri, Dec 31, 2004 at 02:45:53AM +0100, Jesper Juhl wrote:
    > William Park wrote:
    > > On Thu, Dec 30, 2004 at 01:25:32PM -0200, Marcelo Tosatti wrote:
    > > > On Tue, Dec 28, 2004 at 07:59:22PM -0500, William Park wrote:
    > > > > On Mon, Dec 27, 2004 at 10:23:34PM +0100, Andreas Unterkircher wrote:
    > > > > > [1] http://www.xenotime.net/linux/usb/usbboot-2422.patch
    ...
    > > http://linux.bkbits.net:8080/linux-2.4/patch@1.1527.1.20?nav=index.html|ChangeSet@-3w|cset@1.1527.1.20
    > >
    > > Hi Marcelo,
    > >
    > > 1. Actually, my patch above loops every 5s to reduce screen clutter,
    > > whereas the original 2.4 patch (cited by Andreas Unterkircher) loops
    > > every 1s. Both loops forever.
    > >
    > > But, if a limit of 10 tries is what you want, then here is a patch
    > > for 2.6.10:
    >
    > I agree with you that reducing screen clutter is a good thing. How
    > about something like this that waits for 10+ seconds so even slow
    > devices have a chance to get up but also does some primitive
    > ratelimiting on the messages by only printing one every 3 seconds (but
    > still attempting to mount every 1 sec) ?

    Hi Jesper,

    I prefer countdown with short message. The 2.4 messages are too long.
    Incorporating your use of ssleep() and printk() loglevel, here is
    the latest iteration:

    --- ./init/do_mounts.c--orig 2004-12-27 17:36:35.000000000 -0500
    +++ ./init/do_mounts.c 2004-12-30 22:43:57.000000000 -0500
    @@ -6,6 +6,7 @@
    #include <linux/suspend.h>
    #include <linux/root_dev.h>
    #include <linux/security.h>
    +#include <linux/delay.h>

    #include <linux/nfs_fs.h>
    #include <linux/nfs_fs_sb.h>
    @@ -278,6 +279,7 @@
    char *fs_names = __getname();
    char *p;
    char b[BDEVNAME_SIZE];
    + int tryagain = 20;

    get_fs_names(fs_names);
    retry:
    @@ -297,9 +299,13 @@
    * and bad superblock on root device.
    */
    __bdevname(ROOT_DEV, b);
    - printk("VFS: Cannot open root device \"%s\" or %s\n",
    - root_device_name, b);
    - printk("Please append a correct \"root=\" boot option\n");
    + if (--tryagain) {
    + printk (KERN_WARNING "VFS: Waiting %dsec for root device...\n", tryagain);
    + ssleep (1);
    + goto retry;
    + }
    + printk (KERN_CRIT "VFS: Cannot open root device \"%s\" or %s\n", root_device_name, b);
    + printk (KERN_CRIT "Please append a correct \"root=\" boot option\n");

    panic("VFS: Unable to mount root fs on %s", b);
    }
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-03-22 14:09    [W:0.035 / U:116.928 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site