From owner-freebsd-usb@FreeBSD.ORG Tue Feb 17 00:37:00 2009 Return-Path: Delivered-To: usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 74B91106566C for ; Tue, 17 Feb 2009 00:37:00 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 2C4938FC08 for ; Tue, 17 Feb 2009 00:37:00 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.2/8.14.1) with ESMTP id n1H0Zcc1012844; Mon, 16 Feb 2009 17:35:38 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Mon, 16 Feb 2009 17:35:44 -0700 (MST) Message-Id: <20090216.173544.1555327603.imp@bsdimp.com> To: xcllnt@mac.com From: "M. Warner Losh" In-Reply-To: <741FAA3B-B91A-4A23-B47F-21141A8D0B5D@mac.com> References: <20090216.161346.1176917525.imp@bsdimp.com> <741FAA3B-B91A-4A23-B47F-21141A8D0B5D@mac.com> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: usb@freebsd.org Subject: Re: USB2+umass: root mount fails X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Feb 2009 00:37:04 -0000 In message: <741FAA3B-B91A-4A23-B47F-21141A8D0B5D@mac.com> Marcel Moolenaar writes: : : On Feb 16, 2009, at 3:13 PM, M. Warner Losh wrote: : : > In message: : > Marcel Moolenaar 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