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.