public inbox for linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox