lkml.org 
[lkml]   [2012]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH] usb: Use a workqueue in usb_add_hcd() to reduce boot time
From
Hi Greg,

On Thu, Jan 26, 2012 at 4:07 PM, Greg KH <gregkh@suse.de> wrote:
> On Thu, Jan 26, 2012 at 03:57:23PM -0800, Simon Glass wrote:
>> Hi Greg,
>>
>> On Thu, Jan 26, 2012 at 3:51 PM, Greg KH <gregkh@suse.de> wrote:
>> > On Thu, Jan 26, 2012 at 03:48:43PM -0800, Simon Glass wrote:
>> >> Hi Greg,
>> >>
>> >> On Tue, Jan 24, 2012 at 9:22 AM, Greg KH <gregkh@suse.de> wrote:
>> >> > On Tue, Jan 24, 2012 at 05:57:11PM +0100, Sebastian Andrzej Siewior wrote:
>> >> >> * Alan Stern | 2012-01-21 11:11:09 [-0500]:
>> >> >>
>> >> >> >Doing time-consuming things later won't make any difference.  That is,
>> >> >> >suppose the boot sequence performs activities A and B, where A takes a
>> >> >> >long time.  Doing A later, so that the boot sequence performs B and
>> >> >> >then A, won't change the total time required.
>> >> >>
>> >> >> That is true. However if you show the gui _now_ and look for USB later
>> >> >> then it feels faster and this is usually enough.
>> >> >
>> >> > Which has been done before, with great success (i.e. we did it for
>> >> > Moblin boot times), so it shouldn't be that big of an issue.
>> >> >
>> >> > Which points out the question, exactly what is the issue here?  We have
>> >> > "multithreaded" pci driver startup for a long time now, did that stop
>> >> > working here?  If you use bootchart, does it show that the USB host
>> >> > driver is stoping the machine from proceeding to the next stage in the
>> >> > boot process?
>> >> >
>> >> > From my experience, I never saw the USB host controller get in the way
>> >> > at all, it was always somethine else happening that caused problems
>> >> > (i.e. video.)
>> >> >
>> >> > Simon, do you have boot charts anywhere showing this?
>> >>
>> >> I did have initcall timing when I last looked at this. USB was holding
>> >> up progress. Sorry for the delay - I hope to get back to this next
>> >> week.
>> >
>> > Are you building your USB host controllers into the kernel, or are they
>> > modules?
>> >
>> > What is sitting on the USB bus that is needed for the boot process to
>> > continue on to init and then later?  Is the root disk on it?
>>
>> A hub with a few things on it (Ethernet, USB stick). No we don't
>> normally have a root disk on it - we could in fact init USB *much*
>> later and be quite happy. Sorry I don't have full answers until I get
>> back to this. But USB does 'start' each port within the initcall which
>> seems to take time. Maybe it is at bottom a driver issue?
>
> Then load the usb module from a thread after init starts up and you
> should be fine for boot speed, right?  That's what other distros did
> with no known ill side effects.

Sorry I missed your question about modules. We don't have an initrd
and need to boot from USB sometimes (recovery mode). We don't use
modules for USB at present.

It seems to me that initcalls are not the place to start going off and
doing time-consuming hardware init, or at least not if we care about
boot time. I am hoping for a solution which has this happen in
parallel without the need for modules and the like.

I am going to get back into this soon and will go through your
comments and others thoughts and see what I can come up with.

Regards,
Simon

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

\
 
 \ /
  Last update: 2012-01-27 03:49    [from the cache]
©2003-2011 Jasper Spaans