Re: [PATCH] x86/setup: Add boot messages about cmdline builtins

Baoquan He
2020-04-22T07:11:17Z

On 04/22/20 at 12:20am, Tony Fischetti wrote:
> While the ability to override or append to the boot command line has
> been added, the boot messages contain no information as to whether the
> cmdline was manipulated by the build-time options. This patch, for x86,
> adds boot messages specifying whether the cmdline was manipulated and
> waits for the potential changes to take place before printing the final
> boot command line.
>
> Signed-off-by: Tony Fischetti <tony.fischetti@gmail.com>
> ---
> arch/x86/kernel/setup.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
> index 4b3fa6cd3106..28d77f01fd0d 100644
> --- a/arch/x86/kernel/setup.c
> +++ b/arch/x86/kernel/setup.c
> @@ -828,7 +828,6 @@ void __init setup_arch(char **cmdline_p)
> */
> __flush_tlb_all();
> #else
> - printk(KERN_INFO "Command line: %s\n", boot_command_line);
> boot_cpu_data.x86_phys_bits = MAX_PHYSMEM_BITS;
> #endif
>
> @@ -904,10 +903,12 @@ void __init setup_arch(char **cmdline_p)
>
> #ifdef CONFIG_CMDLINE_BOOL
> #ifdef CONFIG_CMDLINE_OVERRIDE
> + pr_info("Overriding command line with builtin\n");
> strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
> #else
> if (builtin_cmdline[0]) {
> /* append boot loader cmdline to builtin */
> + pr_info("Appending command line to builtin\n");
> strlcat(builtin_cmdline, " ", COMMAND_LINE_SIZE);
> strlcat(builtin_cmdline, boot_command_line, COMMAND_LINE_SIZE);
> strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
> @@ -916,6 +917,7 @@ void __init setup_arch(char **cmdline_p)
> #endif
>
> strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
> + pr_info("Command line: %s\n", command_line);

Yeah, adding info to tell there's action on overriding or apending
command line looks good to me. Maybe keep the printing of the original
command, we can get the final command line from '/proc/cmdline' after
system boot, or just get it from the original cmdline + CONFIG_CMDLINE.
Or print the original cmdline and the final cmdline both.

Personal opinion.

> *cmdline_p = command_line;
>
> /*
> --
> 2.20.1
>