Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Feb 2009 08:56:11 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-usb@freebsd.org
Subject:   Re: USB2+umass: root mount fails
Message-ID:  <200902170856.11631.hselasky@c2i.net>
In-Reply-To: <7F91349C-7E58-47C8-BB69-3B2F391B4E73@mac.com>
References:  <741FAA3B-B91A-4A23-B47F-21141A8D0B5D@mac.com> <20090216.190312.1756925299.imp@bsdimp.com> <7F91349C-7E58-47C8-BB69-3B2F391B4E73@mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 17 February 2009, Marcel Moolenaar wrote:
> On Feb 16, 2009, at 6:03 PM, M. Warner Losh wrote:
> > : root_mount_hold() and root_mount_rel() are specifically
> > : designed to inform the mountroot code that it needs to
> > : wait (or that it should go ahead and mount root).
> >
> > But it looks like the old usb code didn't call it either...  I think
> > old code enumerated right away during boot, while the new code defers
> > the enumeration until events can be processed...
>
> Yes, you're right. USB1 used the following:
>
> SYSINIT(usb_cold_explore, SI_SUB_CONFIGURE, SI_ORDER_MIDDLE,
>      usb_cold_explore, NULL);
>
> SI_SUB_CONFIGURE didn't complete before all USB busses
> were enumerated.

I would really prefer that first time USB enumeration is not synchronous. This 
has to do with startup timing. It simply wastes a lot of time to wait for all 
the busses to be probed in serial. Sure it works nice with a USB keyboard and 
a USB mouse, but when you have a couple of USB HUBs and +8 devices connected, 
it simply speeds up the boot time so that you reach the root prompt by the 
time you would else have done the mount root mfs.

If the mountroot code cannot find the disk, it should sleep and loop.

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902170856.11631.hselasky>