From: Prarit Bhargava <prarit@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: Prarit Bhargava <prarit@redhat.com>, Avi Kivity <avi@redhat.com>,
Gleb Natapov <gleb@redhat.com>,
Alex Williamson <alex.williamson@redhat.com>,
Marcelo Tostatti <mtosatti@redhat.com>,
Ingo Molnar <mingo@redhat.com>,
kvm@vger.kernel.org, x86@kernel.org
Subject: [PATCH] x86, add hypervisor name to dump_stack() [v2]
Date: Fri, 26 Oct 2012 09:56:47 -0400 [thread overview]
Message-ID: <1351259807-13739-1-git-send-email-prarit@redhat.com> (raw)
Debugging crash, panics, stack trace WARN_ONs, etc., from both virtual and
bare-metal boots can get difficult very quickly. While there are ways to
decipher the output and determine if the output is from a virtual guest,
the in-kernel hypervisors now have a single registration point
and set x86_hyper. We can use this to output additional debug
information during a panic/oops/stack trace.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Avi Kivity <avi@redhat.com>
Cc: Gleb Natapov <gleb@redhat.com>
Cc: Alex Williamson <alex.williamson@redhat.com>
Cc: Marcelo Tostatti <mtosatti@redhat.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: kvm@vger.kernel.org
Cc: x86@kernel.org
[v2]: Modifications suggested by Ingo and added changes for similar output
from process.c
---
arch/x86/kernel/dumpstack.c | 11 ++++++++++-
arch/x86/kernel/process.c | 12 +++++++++++-
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index ae42418b..5dd680f 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -16,6 +16,7 @@
#include <linux/nmi.h>
#include <linux/sysfs.h>
+#include <asm/hypervisor.h>
#include <asm/stacktrace.h>
@@ -186,9 +187,17 @@ void dump_stack(void)
{
unsigned long bp;
unsigned long stack;
+ const char *machine_name = "x86";
+ const char *kernel_type = "native";
+
+ if (x86_hyper) {
+ machine_name = x86_hyper->name;
+ kernel_type = "guest";
+ }
bp = stack_frame(current, NULL);
- printk("Pid: %d, comm: %.20s %s %s %.*s\n",
+ printk("[%s %s kernel] Pid: %d, comm: %.20s %s %s %.*s\n",
+ machine_name, kernel_type,
current->pid, current->comm, print_tainted(),
init_utsname()->release,
(int)strcspn(init_utsname()->version, " "),
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index b644e1c..14bd064 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -28,6 +28,7 @@
#include <asm/fpu-internal.h>
#include <asm/debugreg.h>
#include <asm/nmi.h>
+#include <asm/hypervisor.h>
/*
* per-CPU TSS segments. Threads are completely 'soft' on Linux,
@@ -124,6 +125,13 @@ void exit_thread(void)
void show_regs_common(void)
{
const char *vendor, *product, *board;
+ const char *machine_name = "x86";
+ const char *kernel_type = "native";
+
+ if (x86_hyper) {
+ machine_name = x86_hyper->name;
+ kernel_type = "guest";
+ }
vendor = dmi_get_system_info(DMI_SYS_VENDOR);
if (!vendor)
@@ -135,7 +143,9 @@ void show_regs_common(void)
/* Board Name is optional */
board = dmi_get_system_info(DMI_BOARD_NAME);
- printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s %s %s%s%s\n",
+ printk(KERN_DEFAULT
+ "[%s %s kernel] Pid: %d, comm: %.20s %s %s %.*s %s %s%s%s\n",
+ machine_name, kernel_type,
current->pid, current->comm, print_tainted(),
init_utsname()->release,
(int)strcspn(init_utsname()->version, " "),
--
1.7.9.3
next reply other threads:[~2012-10-26 13:56 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-26 13:56 Prarit Bhargava [this message]
2012-10-26 14:22 ` [PATCH] x86, add hypervisor name to dump_stack() [v2] Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1351259807-13739-1-git-send-email-prarit@redhat.com \
--to=prarit@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=avi@redhat.com \
--cc=gleb@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=mtosatti@redhat.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.