Bug ID 1173402
Summary Kernel delays boot by 12s if ip= option given
Classification openSUSE
Product openSUSE Tumbleweed
Version Current
Hardware Other
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component Kernel
Assignee kernel-bugs@opensuse.org
Reporter fvogt@suse.com
QA Contact qa-bugs@suse.de
CC dracut-maintainers@suse.de, iforster@suse.com
Found By ---
Blocker ---

For networking in the initrd, the "ip=dhcp" (or similiar) option can be set in
the kernel cmdline. This is parsed by dracut and used to configure wicked.
However, this option is also parsed by the kernel in its ip autoconfig code,
which then ends up trying to bring up the network itself. This bringup includes
a 12s delay to wait for interfaces to appear:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/ipv4/ipconfig.c?id=3eb30c51a6dda26d0c5b8824b7c0515502f1c161#n1469
At this point the initrd isn't even mounted, so there are no kernel modules
available and no interfaces appear.

@kernel maintainers: Is it maybe possible to not do autoconfig in this
circumstance? It might be possible to check whether there are any network 
drivers at all (the default kernel seems to have those as modules only) or
whether it's booting an initrd. Though in the latter case I guess it's possible
that some initrd out there relies on the kernel's successful autoconfig?

@dracut maintainers: It seems like "rd.neednet=1" is enough to get dracut to
acquire an address over DHCP, so a workaround is to just drop "ip=dhcp". I'd
like to have confirmation that this is intended behaviour and won't break
without notice in the future. This doesn't help for cases without DHCP though.

If it's not possible to avoid the "ip=foo" induced kernel delay, it might be a
good idea to provide "rd.ip=foo" or similar as alias, which is ignored by the
kernel.


You are receiving this mail because: