Re: [PATCH] initrd: Remove erroneous comment
From: Tom Rini
Date: Mon Jun 22 2020 - 16:40:42 EST
On Mon, Jun 22, 2020 at 01:02:16PM -0700, ron minnich wrote:
> The other thing you ought to consider fixing:
> initrd is documented as follows:
>
> initrd= [BOOT] Specify the location of the initial ramdisk
>
> for bootloaders only.
>
> UEFI consumes initrd from the command line as well. As ARM servers
> increasingly use UEFI, there may be situations in which the initrd
> option doesn't make its way to the kernel? I don't know, UEFI is such
> a black box to me. But I've seen this "initrd consumption" happen.
>
> Based on docs, and the growing use of bootloaders that are happy to
> consume initrd= and not pass it to the kernel, you might be better off
> trying to move to the new command line option anyway.
>
> IOW, this comment may not be what people want to see, but ... it might
> also be right. Or possibly changed to:
>
> /*
> * The initrd keyword is in use today on ARM, PowerPC, and MIPS.
> * It is also reserved for use by bootloaders such as UEFI and may
> * be consumed by them and not passed on to the kernel.
> * The documentation also shows it as reserved for bootloaders.
> * It is advised to move to the initrdmem= option whereever possible.
> */
Fair warning, one of the other hats I wear is the chief custodian of the
U-Boot project.
Note that on most architectures in modern times the device tree is used
to pass in initrd type information and "initrd=" on the command line is
quite legacy.
But what do you mean UEFI "consumes" initrd= ? It's quite expected that
when you configure grub/syslinux/systemd-boot/whatever via extlinux.conf
or similar with "initrd /some/file" something reasonable happens to
read that in to memory and pass along the location to Linux (which can
vary from arch to arch, when not using device tree). I guess looking at
Documentation/x86/boot.rst is where treating initrd= as a file that
should be handled and ramdisk_image / ramdisk_size set came from. I do
wonder what happens in the case of ARM/ARM64 + UEFI without device tree.
That said, no the comment is wrong. It's not "since 11/2018" but "since
the 1990s". And it doesn't provide any sort of link / context to the
boot loader specification project or similar that explains the cases
when a non-filename "initrd=" would reasonably (or unreasonably but
happens in reality) be removed.
I would go so far as to suggest that adding special handling for some
x86 setups is the wrong to place to start / further deprecate how other
architectures and firmwares handle a given situation. I'm only chiming
in here as I saw this commit go by on LWN and wanted to see how this was
different from the traditional usage of initrd= in the rest of the
kernel (it's not) and then saw the otherwise unrelated new comment being
added.
--
Tom
Attachment:
signature.asc
Description: PGP signature