lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.44L0.0806201130390.2719-100000@iolanthe.rowland.org>
Date:	Fri, 20 Jun 2008 11:42:21 -0400 (EDT)
From:	Alan Stern <stern@...land.harvard.edu>
To:	Vegard Nossum <vegard.nossum@...il.com>
cc:	Matthew Wilcox <matthew@....cx>,
	Pekka J Enberg <penberg@...helsinki.fi>,
	Stefan Richter <stefanr@...6.in-berlin.de>,
	<linux-kernel@...r.kernel.org>, <dsd@...too.org>,
	<mdharm-usb@...-eyed-alien.net>, <linux-usb@...r.kernel.org>,
	<vegardno@....uio.no>, <James.Bottomley@...senpartnership.com>,
	<linux-scsi@...r.kernel.org>, Greg KH <greg@...ah.com>
Subject: Re: [RFC/PATCH] usb-storage: wait for device scanning before mounting
 root

On Fri, 20 Jun 2008, Vegard Nossum wrote:

> Hi,
> 
> On Thu, Jun 19, 2008 at 11:39 PM, Alan Stern <stern@...land.harvard.edu> wrote:
> > On Thu, 19 Jun 2008, Matthew Wilcox wrote:
> >
> >> This discussion seemed to die off ... did anything ever come of it?
> >
> > As I recall, it died because the whole notion was very poorly defined
> > to begin with.  The idea was to stop waiting when all the SCSI buses
> > had been scanned -- but there's no way to know when that occurs because
> > new buses can be added at any time.
> 
> Can you please explain why this is?
> 
> We only want to scan buses that are present when the system is
> started. If we reach the point where all USB ports/devices/whatever
> have been enumerated, all SCSI buses scanned, and all partition tables
> loaded, what more is there to wait for?

New USB devices can appear at any time.  None are present when the 
system is started; they are all detected dynamically by the khubd 
thread.

While I'm not familiar with the details of any other hotpluggable 
buses (like Firewire), I imagine much the same is true for them.

> I can't understand that this is fundamentally a hardware problem. I
> understand that there might be a problem with the patch that was
> proposed a the beginning of the thread, but is this really a truly
> unsolvable problem? Please correct me if I am wrong -- the problem
> here is that Pekka's newly introduced nr_root_scans can drop to 0
> before everything has been enumerated at least once. This is because
> scsi_scan_host() forks a new thread which is what's actually doing the
> scanning. Can't we just stick a begin_root_scan() before forking, and
> drop it inside the thread, just like we do with the
> usb_stor_scan_thread? If the thread is actually a loop, the first
> iteration should be enough, right?
> 
> I'm grateful for any explanations that will help my poor head understand... :-)

Suppose there are two USB disk drives attached, and the one containing
the root fs is probed second.  The count could easily drop to 0 when
the first drive has been scanned, especially if scanning is done
synchronously.

What happens when the root fs is on a hotpluggable bus that doesn't use
the SCSI infrastructure?  You'd have to extend your hooks into that
other subsystem as well.

Besides, why do you want to go to all this trouble to find out
_exactly_ when the device containing the root fs becomes available?  
What's wrong with just checking at 1/10-second intervals?

For example, what happens if the USB device containing the root fs
isn't plugged in when the system boots?  The user will quickly realize
that nothing is happening and will then plug it in.  But your code will
already have decided that the device doesn't exist and given up.  
Wouldn't it be better simply to keep on trying, so that then the device 
does get plugged in the system can use it?

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ