From: Vitaly Mayatskikh <v.mayatskih@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: Andrew Morton <akpm@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Vivek Goyal <vgoyal@redhat.com>,
Randy Dunlap <rdunlap@xenotime.net>
Subject: [PATCH 2/5] x86: Split __show_regs()
Date: Wed, 2 Jun 2010 09:39:16 +0200 [thread overview]
Message-ID: <1275464359-1566-3-git-send-email-v.mayatskih@gmail.com> (raw)
In-Reply-To: <1275464359-1566-1-git-send-email-v.mayatskih@gmail.com>
__show_regs dumps content of pt_regs and does other things beside
it. This patch moves pt_regs dumping part into separate function:
__show_main_regs.
Signed-off-by: Vitaly Mayatskikh <v.mayatskih@gmail.com>
---
arch/x86/include/asm/kdebug.h | 1 +
arch/x86/kernel/process_32.c | 22 ++++++++++++++--------
arch/x86/kernel/process_64.c | 20 ++++++++++++--------
3 files changed, 27 insertions(+), 16 deletions(-)
diff --git a/arch/x86/include/asm/kdebug.h b/arch/x86/include/asm/kdebug.h
index fa7c0b9..fd346c8 100644
--- a/arch/x86/include/asm/kdebug.h
+++ b/arch/x86/include/asm/kdebug.h
@@ -30,6 +30,7 @@ extern void show_registers(struct pt_regs *regs);
extern void show_trace(struct task_struct *t, struct pt_regs *regs,
unsigned long *sp, unsigned long bp);
extern void __show_regs(struct pt_regs *regs, int all);
+extern void __show_main_regs(struct pt_regs *regs);
extern void show_regs(struct pt_regs *regs);
extern unsigned long oops_begin(void);
extern void oops_end(unsigned long, struct pt_regs *, int signr);
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index 8d12878..e67cad7 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -119,10 +119,8 @@ void cpu_idle(void)
}
}
-void __show_regs(struct pt_regs *regs, int all)
+void __show_main_regs(struct pt_regs *regs)
{
- unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L;
- unsigned long d0, d1, d2, d3, d6, d7;
unsigned long sp;
unsigned short ss, gs;
@@ -135,12 +133,9 @@ void __show_regs(struct pt_regs *regs, int all)
savesegment(ss, ss);
savesegment(gs, gs);
}
+ printk(KERN_DEFAULT "EIP: %04x:[<%08lx>] EFLAGS: %08lx\n",
+ (u16)regs->cs, regs->ip, regs->flags);
- show_regs_common();
-
- printk(KERN_DEFAULT "EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n",
- (u16)regs->cs, regs->ip, regs->flags,
- smp_processor_id());
print_symbol("EIP is at %s\n", regs->ip);
printk(KERN_DEFAULT "EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n",
@@ -149,6 +144,17 @@ void __show_regs(struct pt_regs *regs, int all)
regs->si, regs->di, regs->bp, sp);
printk(KERN_DEFAULT " DS: %04x ES: %04x FS: %04x GS: %04x SS: %04x\n",
(u16)regs->ds, (u16)regs->es, (u16)regs->fs, gs, ss);
+}
+
+void __show_regs(struct pt_regs *regs, int all)
+{
+ unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L;
+ unsigned long d0, d1, d2, d3, d6, d7;
+
+
+ show_regs_common();
+
+ __show_main_regs(regs);
if (!all)
return;
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 3c2422a..00a6614 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -151,15 +151,8 @@ void cpu_idle(void)
}
}
-/* Prints also some state that isn't saved in the pt_regs */
-void __show_regs(struct pt_regs *regs, int all)
+void __show_main_regs(struct pt_regs *regs)
{
- unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L, fs, gs, shadowgs;
- unsigned long d0, d1, d2, d3, d6, d7;
- unsigned int fsindex, gsindex;
- unsigned int ds, cs, es;
-
- show_regs_common();
printk(KERN_DEFAULT "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip);
printk_address(regs->ip, 1);
printk(KERN_DEFAULT "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss,
@@ -174,7 +167,18 @@ void __show_regs(struct pt_regs *regs, int all)
regs->r10, regs->r11, regs->r12);
printk(KERN_DEFAULT "R13: %016lx R14: %016lx R15: %016lx\n",
regs->r13, regs->r14, regs->r15);
+}
+/* Prints also some state that isn't saved in the pt_regs */
+void __show_regs(struct pt_regs *regs, int all)
+{
+ unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L, fs, gs, shadowgs;
+ unsigned long d0, d1, d2, d3, d6, d7;
+ unsigned int fsindex, gsindex;
+ unsigned int ds, cs, es;
+
+ show_regs_common();
+ __show_main_regs(regs);
asm("movl %%ds,%0" : "=r" (ds));
asm("movl %%cs,%0" : "=r" (cs));
asm("movl %%es,%0" : "=r" (es));
--
1.7.1
next prev parent reply other threads:[~2010-06-02 9:45 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-02 7:39 [PATCH 0/5] kdump: extract log buffer and registers from vmcore on NMI button pressing Vitaly Mayatskikh
2010-06-02 7:39 ` [PATCH 1/5] x86: Introduce ELF_CORE_EXTRACT_REGS Vitaly Mayatskikh
2010-06-02 7:39 ` Vitaly Mayatskikh [this message]
2010-06-02 9:50 ` [PATCH 2/5] x86: Split __show_regs() Pekka Enberg
2010-06-02 10:00 ` Vitaly Mayatskikh
2010-06-02 7:39 ` [PATCH 3/5] vmcore: Introduce dump_old_log() Vitaly Mayatskikh
2010-06-02 7:39 ` [PATCH 4/5] x86: Add new callback for unhandled NMIs Vitaly Mayatskikh
2010-06-02 7:39 ` [PATCH 5/5] Document unknown_nmi_dump_log variable Vitaly Mayatskikh
2010-06-02 15:16 ` [PATCH 0/5] kdump: extract log buffer and registers from vmcore on NMI button pressing Vivek Goyal
2010-06-03 9:01 ` Vitaly Mayatskikh
2010-06-03 9:30 ` Andi Kleen
2010-06-03 12:33 ` Vitaly Mayatskikh
2010-06-03 15:13 ` Andi Kleen
2010-06-04 9:32 ` Vitaly Mayatskikh
2010-06-04 10:15 ` Andi Kleen
2010-06-04 13:58 ` Vitaly Mayatskikh
2010-06-04 9:49 ` Américo Wang
2010-06-04 10:16 ` Andi Kleen
2010-06-04 14:49 ` Vivek Goyal
2010-06-04 14:42 ` Vivek Goyal
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=1275464359-1566-3-git-send-email-v.mayatskih@gmail.com \
--to=v.mayatskih@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rdunlap@xenotime.net \
--cc=tglx@linutronix.de \
--cc=vgoyal@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).