On 09.12.2020 13:11, Julien Grall wrote: > On 26/11/2020 11:20, Jan Beulich wrote: >> On 26.11.2020 09:03, Juergen Gross wrote: >>> When the host crashes it would sometimes be nice to have additional >>> debug data available which could be produced via debug keys, but >>> halting the server for manual intervention might be impossible due to >>> the need to reboot/kexec rather sooner than later. >>> >>> Add support for automatic debug key actions in case of crashes which >>> can be activated via boot- or runtime-parameter. >>> >>> Depending on the type of crash the desired data might be different, so >>> support different settings for the possible types of crashes. >>> >>> The parameter is "crash-debug" with the following syntax: >>> >>> crash-debug-<type>=<string> >>> >>> with <type> being one of: >>> >>> panic, hwdom, watchdog, kexeccmd, debugkey >>> >>> and <string> a sequence of debug key characters with '+' having the >>> special semantics of a 10 millisecond pause. >>> >>> So "crash-debug-watchdog=0+0qr" would result in special output in case >>> of watchdog triggered crash (dom0 state, 10 ms pause, dom0 state, >>> domain info, run queues). >>> >>> Signed-off-by: Juergen Gross <jgr...@suse.com> >>> --- >>> V2: >>> - switched special character '.' to '+' (Jan Beulich) >>> - 10 ms instead of 1 s pause (Jan Beulich) >>> - added more text to the boot parameter description (Jan Beulich) >>> >>> V3: >>> - added const (Jan Beulich) >>> - thorough test of crash reason parameter (Jan Beulich) >>> - kexeccmd case should depend on CONFIG_KEXEC (Jan Beulich) >>> - added dummy get_irq_regs() helper on Arm >>> >>> Signed-off-by: Juergen Gross <jgr...@suse.com> >> >> Except for the Arm aspect, where I'm not sure using >> guest_cpu_user_regs() is correct in all cases, > > I am not entirely sure to understand what get_irq_regs() is supposed to > returned on x86. Is it the registers saved from the most recent exception?
An interrupt (not an exception) sets the underlying per-CPU variable, such that interested parties will know the real context is not guest or "normal" Xen code, but an IRQ. Jan