Re: [PATCH v2 2/2] xen/common: add keyhandler to show Xen command line
Oleksii Kurochko <[email protected]>
| Newsgroups | gmane.comp.emulators.xen.devel |
|---|---|
| Message-ID | <[email protected]> |
On 8/8/26 4:38 AM, [email protected] wrote: > On Fri, Aug 07, 2026 at 05:44:41PM -0700, Stefano Stabellini wrote: >> On Mon, 3 Aug 2026, [email protected] wrote: >>> From: Denis Mukhin <[email protected]> >>> >>> Currently there's no way to print Xen command line on the emergency >>> console for debugging purposes (e.g. 'xl' is not available in dom0). >>> >>> Add new keyhander 'X' to do command line printout. >>> >>> Signed-off-by: Denis Mukhin <[email protected]> >>> --- >>> v1: https://lore.kernel.org/xen-devel/[email protected]/ >>> >>> Changes since v1: >>> - moved implementation into kernel.c >>> --- >>> xen/common/kernel.c | 16 ++++++++++++++++ >>> 1 file changed, 16 insertions(+) >>> >>> diff --git a/xen/common/kernel.c b/xen/common/kernel.c >>> index d1bef9ac2b2b..9f334c92e3ab 100644 >>> --- a/xen/common/kernel.c >>> +++ b/xen/common/kernel.c >>> @@ -5,6 +5,7 @@ >>> */ >>> >>> #include <xen/init.h> >>> +#include <xen/keyhandler.h> >>> #include <xen/lib.h> >>> #include <xen/errno.h> >>> #include <xen/param.h> >>> @@ -505,6 +506,21 @@ static int __init cf_check param_init(void) >>> __initcall(param_init); >>> #endif >>> >>> +static void cf_check show_hypervisor_info(unsigned char key) >>> +{ >>> + printk("'%c' pressed -> showing hypervisor information\n", key); >>> + printk("Command line: %s\n", saved_cmdline); >> >> if CONFIG_CMDLINE_OVERRIDE is defined, saved_cmdline is empty. We could >> at least do this: >> >> #ifdef CONFIG_CMDLINE_OVERRIDE >> printk("Bootloader command line ignored (CONFIG_CMDLINE_OVERRIDE=y)\n"); >> #else >> printk("Command line: %s\n", saved_cmdline); >> #endif > > Actually, CONFIG_CMDLINE can set the built-in command line which can be > non-empty. > > Perhaps, something like this: > > printk("Command line (built-in): %s\n", opt_builtin_cmdline); > #ifndef CONFIG_CMDLINE_OVERRIDE > printk("Command line: %s\n", saved_cmdline); > #endif > > What do you think? Considering that opt_builtin_cmdline is declared as __initconst won't it be an issue to print it in non-init function (show_hypervisor_info())? In other words, I expected that __init section should be freed at some point and I expect that it should be data abort here. ~ Oleksii