Rachita Kothiyal wrote:
Hi Dave
With 4.0-3.8 and older versions of crash, I used to see this message
"possibly bogus exception frame" on starting crash. That seems to have
gone now with crash-4.0-3.9. However, I am still getting this message
when I do a bt on the latest crash(kdump generated vmcore).
On crash-4.0-3.9
crash> bt
PID: 0 TASK: ffffffff805564c0 CPU: 0 COMMAND: "swapper"
#0 [ffffffff8064bce8] crash_kexec at ffffffff80152225
#1 [ffffffff8064bd30] machine_kexec at ffffffff8011a739
#2 [ffffffff8064bd70] crash_kexec at ffffffff80152241
#3 [ffffffff8064bdf8] crash_kexec at ffffffff80152225
#4 [ffffffff8064be20] bust_spinlocks at ffffffff8011fd6d
#5 [ffffffff8064be30] panic at ffffffff80131420
#6 [ffffffff8064bef8] hrtimer_run_queues at ffffffff80145f6e
#7 [ffffffff8064bf20] handle_IRQ_event at ffffffff80154432
#8 [ffffffff8064bf50] __do_IRQ at ffffffff8015451f
#9 [ffffffff8064bf58] __do_softirq at ffffffff80136ba3
#10 [ffffffff8064bf90] do_IRQ at ffffffff8010bda1
--- <IRQ stack> ---
#11 [ffffffff806f7f20] ret_from_intr at ffffffff80109b95
[exception RIP: cpu_idle+149]
RIP: ffffffff8010890f RSP: 000000000008e000 RFLAGS: ffffffff8070379c
RAX: ffffffffffffffff RBX: 0000000000000000 RCX: ffffffff80108968
RDX: 0000000000000010 RSI: 0000000000000246 RDI: ffffffff806f7fa0
RBP: ffffffff806f6000 R8: ffffffff80557db8 R9: 0000000000000001
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: ffffffff803951dc R15: 000000000008e000
ORIG_RAX: 0000000000000018 CS: 20800 SS: 0000
bt: WARNING: possibly bogus exception frame
#12 [ffffffff806f7fd0] x86_64_start_kernel at ffffffff80703296
On doing a 'help -m' I find that irq_eframe_link is zero..is that ok?
Thanks
Rachita
Clearly the exception frame is bogus (RSP and RFLAGS), so
if your kernel's ".macro interrupt func" pushes rpb instead
of rdi prior to calling the interrupt handler, then the
irq_eframe_link shouldn't be zero.
Do a "dis common_interrupt" -- in a RHEL5 kernel it looks like
this:
crash> dis common_interrupt
0xffffffff8005b968 <common_interrupt>: cld
0xffffffff8005b969 <common_interrupt+1>: sub $0x48,%rsp
0xffffffff8005b96d <common_interrupt+5>: mov %rdi,0x40(%rsp)
0xffffffff8005b972 <common_interrupt+10>: mov %rsi,0x38(%rsp)
0xffffffff8005b977 <common_interrupt+15>: mov %rdx,0x30(%rsp)
0xffffffff8005b97c <common_interrupt+20>: mov %rcx,0x28(%rsp)
0xffffffff8005b981 <common_interrupt+25>: mov %rax,0x20(%rsp)
0xffffffff8005b986 <common_interrupt+30>: mov %r8,0x18(%rsp)
0xffffffff8005b98b <common_interrupt+35>: mov %r9,0x10(%rsp)
0xffffffff8005b990 <common_interrupt+40>: mov %r10,0x8(%rsp)
0xffffffff8005b995 <common_interrupt+45>: mov %r11,(%rsp)
0xffffffff8005b999 <common_interrupt+49>: lea
0xffffffffffffffd0(%rsp),%rdi
0xffffffff8005b99e <common_interrupt+54>: push %rbp
0xffffffff8005b99f <common_interrupt+55>: mov %rsp,%rbp
0xffffffff8005b9a2 <common_interrupt+58>: testl $0x3,0x88(%rdi)
0xffffffff8005b9ac <common_interrupt+68>: je 0xffffffff8005b9b1
<common_interrupt+73>
0xffffffff8005b9ae <common_interrupt+70>: invlpg %ax
0xffffffff8005b9b1 <common_interrupt+73>: incl %gs:0x28
0xffffffff8005b9b9 <common_interrupt+81>: cmove %gs:0x30,%rsp
0xffffffff8005b9c3 <common_interrupt+91>: push %rbp
0xffffffff8005b9c4 <common_interrupt+92>: callq 0xffffffff8006a57b
<do_IRQ>
crash>
If "crash --machdep irq_eframe_link=40 ..." works, then
something in x86_64_irq_eframe_link_init() needs to be
looked at.
Dave