[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 3/3] xen: add support for automatic debug key actions in case of crash
On 14.12.20 11:24, Julien Grall wrote:
Hi Juergen,
On 14/12/2020 07:56, Juergen Gross wrote:
diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
index de120fa092..806355ed8b 100644
--- a/xen/common/keyhandler.c
+++ b/xen/common/keyhandler.c
@@ -3,7 +3,9 @@
*/
#include <asm/regs.h>
+#include <xen/delay.h>
#include <xen/keyhandler.h>
+#include <xen/param.h>
#include <xen/shutdown.h>
#include <xen/event.h>
#include <xen/console.h>
@@ -519,6 +521,59 @@ void __init initialize_keytable(void)
}
}
+#define CRASHACTION_SIZE 32
+static char crash_debug_panic[CRASHACTION_SIZE];
+string_runtime_param("crash-debug-panic", crash_debug_panic);
+static char crash_debug_hwdom[CRASHACTION_SIZE];
+string_runtime_param("crash-debug-hwdom", crash_debug_hwdom);
+static char crash_debug_watchdog[CRASHACTION_SIZE];
+string_runtime_param("crash-debug-watchdog", crash_debug_watchdog);
+#ifdef CONFIG_KEXEC
+static char crash_debug_kexeccmd[CRASHACTION_SIZE];
+string_runtime_param("crash-debug-kexeccmd", crash_debug_kexeccmd);
+#else
+#define crash_debug_kexeccmd NULL
+#endif
+static char crash_debug_debugkey[CRASHACTION_SIZE];
+string_runtime_param("crash-debug-debugkey", crash_debug_debugkey);
+
+void keyhandler_crash_action(enum crash_reason reason)
+{
+ static const char *const crash_action[] = {
+ [CRASHREASON_PANIC] = crash_debug_panic,
+ [CRASHREASON_HWDOM] = crash_debug_hwdom,
+ [CRASHREASON_WATCHDOG] = crash_debug_watchdog,
+ [CRASHREASON_KEXECCMD] = crash_debug_kexeccmd,
+ [CRASHREASON_DEBUGKEY] = crash_debug_debugkey,
+ };
+ static bool ignore;
+ const char *action;
+
+ /* Some handlers are not functional too early. */
Can you explain in the commit message why this is necessary (An example
would be useful)?
Okay.
Juergen
Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc
Description: application/pgp-keys
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature
|