All of lore.kernel.org
 help / color / mirror / Atom feed
From: William Park <opengeometry@yahoo.ca>
To: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: waiting 10s before mounting root filesystem?
Date: Thu, 30 Dec 2004 19:22:10 -0500	[thread overview]
Message-ID: <20041231002210.GA2418@node1.opengeometry.net> (raw)
In-Reply-To: <20041230152531.GB5058@logos.cnet>

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
> > 
> > Thanks Andreas.  I can now boot from my el-cheapo USB key drive
> > (256MB SanDisk Cruzer Mini).  Since mine takes about 5sec to show
> > up, I decided to wait 5sec instead of 1sec.  Here is diff for
> > 2.6.10:
> > 
> > --- ./init/do_mounts.c--orig	2004-12-27 17:36:35.000000000 -0500
> > +++ ./init/do_mounts.c	2004-12-28 17:27:26.000000000 -0500
> > @@ -301,7 +301,14 @@ retry:
> >  				root_device_name, b);
> >  		printk("Please append a correct \"root=\" boot option\n");
> >  
> > +#if 0	/* original code */
> >  		panic("VFS: Unable to mount root fs on %s", b);
> > +#else
> > +		printk ("Waiting 5 seconds to try again...\n");
> > +		set_current_state(TASK_INTERRUPTIBLE);
> > +		schedule_timeout(5 * HZ);
> > +		goto retry;
> > +#endif
> >  	}
> >  	panic("VFS: Unable to mount root fs on %s", __bdevname(ROOT_DEV, b));
> >  out:
> 
> William,
> 
> Solar version which is now merged in v2.4 looks better (5s sleep is
> too long and only one try) IMO.
> 
> It sleeps 1s each time, 10 times. More reliable and faster.
> 
> 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:
====================

--- ./init/do_mounts.c--orig	2004-12-27 17:36:35.000000000 -0500
+++ ./init/do_mounts.c	2004-12-30 18:57:46.000000000 -0500
@@ -278,6 +278,7 @@
 	char *fs_names = __getname();
 	char *p;
 	char b[BDEVNAME_SIZE];
+	int tryagain = 10;
 
 	get_fs_names(fs_names);
 retry:
@@ -297,11 +298,16 @@
 		 * and bad superblock on root device.
 		 */
 		__bdevname(ROOT_DEV, b);
+		if (--tryagain) {
+		    printk ("VFS: Waiting %dsec for root device...\n", tryagain);
+		    set_current_state (TASK_INTERRUPTIBLE);
+		    schedule_timeout (HZ);
+		    goto retry;
+		}
 		printk("VFS: Cannot open root device \"%s\" or %s\n",
 				root_device_name, b);
 		printk("Please append a correct \"root=\" boot option\n");
-
-		panic("VFS: Unable to mount root fs on %s", b);
+		break;
 	}
 	panic("VFS: Unable to mount root fs on %s", __bdevname(ROOT_DEV, b));
 out:

====================

    The only difference are
	- using 'tryagain' instead of 'tries' as counter
	- printing countdown of seconds like
	    VFS: Waiting 9sec for root device...
	    VFS: Waiting 8sec for root device...
	    ...
	    VFS: Waiting 1sec for root device...
	  before printing the final error.


2.  I sincerely hope that this patch get included in the main kernel.
    USB boot is very important feature, and will become the standard way
    of booting Linux thin-client as well as other Linux system, embedded
    or not.  It will make Netboot, Etherboot, PXE boot, CF-to-IDE
    adapter, and initrd all obsolete.

-- 
William Park <opengeometry@yahoo.ca>
Open Geometry Consulting, Toronto, Canada
Linux solution for data processing. 

  parent reply	other threads:[~2004-12-31  0:22 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-27 19:56 waiting 10s before mounting root filesystem? William Park
2004-12-27 20:10 ` Trent Lloyd
2004-12-27 21:23   ` Andreas Unterkircher
2004-12-28  1:54     ` Eric Lammerts
2004-12-29  0:59     ` William Park
2004-12-29  1:38       ` Jesper Juhl
2004-12-29  1:56         ` William Park
2004-12-29 12:49           ` Paulo Marques
2004-12-29 19:15             ` William Park
2004-12-29 19:34               ` Paulo Marques
2004-12-29 20:59                 ` William Park
2004-12-29 21:26                   ` Andreas Steinmetz
2004-12-31 19:32                     ` Willy Tarreau
2004-12-29 21:53                   ` Bernd Eckenfels
2004-12-29 22:56                 ` Jesper Juhl
2004-12-30 15:25       ` Marcelo Tosatti
2004-12-30 23:45         ` Jesper Juhl
2004-12-31  1:45           ` Jesper Juhl
2004-12-31  3:58             ` William Park
2004-12-31  4:41               ` Jesper Juhl
2004-12-31 11:31                 ` Paulo Marques
2004-12-31  9:49               ` Andrew Morton
2004-12-31  8:28                 ` Marcelo Tosatti
2004-12-31 11:40                   ` Andrew Morton
2004-12-31 11:26                 ` Paulo Marques
2004-12-31  8:58                   ` Marcelo Tosatti
2004-12-31 11:42                   ` Andrew Morton
2004-12-31 12:04                     ` Paulo Marques
2004-12-31 17:36                     ` William Park
2004-12-31 17:48                       ` Tomasz Torcz
2004-12-31 18:18                         ` William Park
2004-12-31  0:22         ` William Park [this message]
     [not found] <fa.nc4oh06.1j1872e@ifi.uio.no>
     [not found] ` <fa.nalafoa.1ih25aa@ifi.uio.no>
2004-12-31 12:33   ` Bodo Eggert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20041231002210.GA2418@node1.opengeometry.net \
    --to=opengeometry@yahoo.ca \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo.tosatti@cyclades.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.