← Back to team overview

kernel-packages team mailing list archive

[Bug 1259861] Re: 5-10 second delay in kernel boot


After studying the code in net/ipv4/ipconfig.c I'm fairly confident
that the problem is caused by wait_for_devices() failing to find any
network interfaces and timing out.  That function waits for 12 seconds
before giving up, and the time difference between the "IP-Config:
Entered" message and the end of the delay is just a hair over 12

It makes sense that wait_for_devices() would fail:  There are no
network devices until the initramfs loads the network interface
modules, and the initramfs init script doesn't start running until
after the kernel is done processing the ip=* argument.

So if the kernel fails to handle the ip=* argument, how does the ip=*
parameter work at all?  The answer is the initramfs:  The initramfs
init script parses the ip command-line argument and the
scripts/functions script runs the ipconfig utility with the
appropriate arguments to configure the interface.

I see a few ways to fix this:
  * Modify the kernel source code to provide a way to change/disable
    the timeout.
  * Modify the kernel source code to allow the initramfs to load while
    the kernel is still waiting for a network device to appear.
  * Compile all network drivers into the kernel itself (don't build
    them as modules).
  * Modify the initramfs init script to introduce an alias for the
    ip=* parameter, e.g., initramfs_ip=*.  This would allow users to
    avoid the pointless kernel processing.

The last option is probably the easiest and least likely to introduce
any unintended side effects.

You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.

  5-10 second delay in kernel boot

Status in linux package in Ubuntu:

Bug description:
  In Trusty I see a big delay while the kernel boots that I did not see back in Precise.
  Some people have been experiencing this in Saucy too, so I don't know exactly when it started happening.
  Excerpt from dmesg:
  [    3.740100] Switched to clocksource tsc
  [   14.208118] PM: Hibernation image not present or could not be loaded.
  [   14.208885] Freeing unused kernel memory: 864K (c19ac000 - c1a84000)

  The exact messages above don't matter, they are different on different boots or on different machines.
  It even happens with e.g. 
  $ sudo kvm -m 768 -cdrom trusty-desktop-i386.iso

  My current kernel is
  Linux server 3.12.0-7-generic #15-Ubuntu SMP Sun Dec 8 23:42:09 UTC 2013 i686 i686 i686 GNU/Linux
  ...but the exact version, maybe from 3.8 to 3.12+, shouldn't matter, just run `dmesg` yourself and check if there's a big delay there.

To manage notifications about this bug go to: