Date: Mon, 16 Feb 2009 17:35:44 -0700 (MST) From: "M. Warner Losh" <imp@bsdimp.com> To: xcllnt@mac.com Cc: usb@freebsd.org Subject: Re: USB2+umass: root mount fails Message-ID: <20090216.173544.1555327603.imp@bsdimp.com> In-Reply-To: <741FAA3B-B91A-4A23-B47F-21141A8D0B5D@mac.com> References: <ACB7DFF1-6C8E-4936-9BD9-BB2FD375F3BB@mac.com> <20090216.161346.1176917525.imp@bsdimp.com> <741FAA3B-B91A-4A23-B47F-21141A8D0B5D@mac.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <741FAA3B-B91A-4A23-B47F-21141A8D0B5D@mac.com>
Marcel Moolenaar <xcllnt@mac.com> writes:
:
: On Feb 16, 2009, at 3:13 PM, M. Warner Losh wrote:
:
: > In message: <ACB7DFF1-6C8E-4936-9BD9-BB2FD375F3BB@mac.com>
: > Marcel Moolenaar <xcllnt@mac.com> writes:
: > : Before I dig into the code, what's the current status of
: > : root mounts on USB mass storage devices?
: >
: > First, there's a kludge-o-round that is similar to your "sleep 10"
: > that you've added. It loops waiting for more devices to show up if
: > the desired root file system hasn't appeared yet.
: >
: > There's no way for hot-plug busses to tell the kernel "I've tried my
: > best to enumerate everything on my bus, and I'm done"
:
: Of course there is. Any and all USB hubs have a certain
: number of ports. You can trivially iterate over all of
: them and declare completion when you've tried them all.
The hot-plug busses know. The mountroot code doesn't have a way to
wait for the hot-plug busses.
: Recursion is also not a big deal. When you find a HUB
: underneath a port, you iterate over all the ports of
: that downstream hub before you declare completion of
: the USB discovery process.
:
: When the USB discovery process is done, you release
: the root mount lock...
:
: So what's the problem?
You're looking on the wrong side of the problem.
Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090216.173544.1555327603.imp>
