Re: [PATCH v2 2/2] xen/common: add keyhandler to show Xen command line
[email protected] Fri, 7 Aug 2026 19:38:28 -0700
| Newsgroups | gmane.comp.emulators.xen.devel |
|---|---|
| Message-ID | <anaWpO/zu5sI4A9u@kraken> |
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? > > Other than that it is fine for me > > > > > +} > > + > > +static int __init cf_check misc_init(void) > > +{ > > + register_keyhandler('X', show_hypervisor_info, > > + "show hypervisor information", 0); > > + > > + return 0; > > +} > > +__initcall(misc_init); > > + > > static long xenver_varbuf_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) > > { > > struct xen_varbuf user_str; > > -- > > 2.54.0 > > >