Dave Anderson <[email protected]> writes:
> Actually, it supposed to be the function that was running on the process stack
> prior to the transition to the IRQ stack. So it should be "handle_irq" here
> in arch/x86/kernel/irq_32.c:
I see.
[...]
>> crash> bt
>> PID: 0 TASK: c1da8b00 CPU: 0 COMMAND: "swapper/0"
>> #0 [c1da1f60] __schedule at c19fe305
>> #1 [c1da1fa0] schedule at c19febb3
>> #2 [c1da1fac] schedule_preempt_disabled at c19ff0a2
>> #3 [c1da1fb4] cpu_startup_entry at c10a9580
>> crash> bt 45
>> PID: 45 TASK: f57d3a00 CPU: 3 COMMAND: "kworker/3:1"
>> bt: cannot resolve stack trace:
>> bt: Task in user space -- no backtrace
>>
>> In above case, looks like failed to detect panic cpu, and "bt 45" also
>> not working.
crash> bt 45
PID: 45 TASK: f57d3a00 CPU: 3 COMMAND: "kworker/3:1"
bt: cannot resolve stack trace:
bt: Task in user space -- no backtrace
[...]
>> crash> bt
>> PID: 31 TASK: f505e080 CPU: 1 COMMAND: "kworker/1:1"
>> #0 [f5a73de8] die at c101dc04
>> #1 [f5a73dfc] notify_die at c10809fc
>> #2 [f5a73e24] do_error_trap at c101ab1c
>> #3 [f5a73ec4] do_invalid_op at c101b2cf
>> #4 [f5a73ed4] error_code (via invalid_op) at c1a060fd
>> EAX: f505e080 EBX: f3da0000 ECX: 00000041 EDX: 0000c06a EBP: f5a73f28
>> DS: 007b ESI: f3da154c ES: 007b EDI: 00000000 GS: ffffb2b0
>> CS: 0060 EIP: c172b046 ERR: ffffffff EFLAGS: 00210006
>> #5 [f5a73f08] __ata_sff_port_intr at c172b046
>> #6 [f5a73f2c] ata_bmdma_port_intr at c172b333
>> #7 [f5a73f50] ata_bmdma_interrupt at c172b576
>> #8 [f5a73f84] __handle_irq_event_percpu at c10cf376
>> #9 [f5a73fc0] handle_irq_event_percpu at c10cf7c9
>> #10 [f5a73fd4] handle_irq_event at c10cf829
>> #11 [f5a73fe8] handle_edge_irq at c10d2958
>> --- <hard IRQ> ---
>> bt: cannot resolve stack trace:
>> bt: text symbols on stack:
crash> bt
PID: 31 TASK: f505e080 CPU: 1 COMMAND: "kworker/1:1"
#0 [f5a73de8] die at c101dc04
#1 [f5a73dfc] notify_die at c10809fc
#2 [f5a73e24] do_error_trap at c101ab1c
#3 [f5a73ec4] do_invalid_op at c101b2cf
#4 [f5a73ed4] error_code (via invalid_op) at c1a060fd
EAX: f505e080 EBX: f3da0000 ECX: 00000041 EDX: 0000c06a EBP: f5a73f28
DS: 007b ESI: f3da154c ES: 007b EDI: 00000000 GS: ffffb2b0
CS: 0060 EIP: c172b046 ERR: ffffffff EFLAGS: 00210006
#5 [f5a73f08] __ata_sff_port_intr at c172b046
#6 [f5a73f2c] ata_bmdma_port_intr at c172b333
#7 [f5a73f50] ata_bmdma_interrupt at c172b576
#8 [f5a73f84] __handle_irq_event_percpu at c10cf376
#9 [f5a73fc0] handle_irq_event_percpu at c10cf7c9
#10 [f5a73fd4] handle_irq_event at c10cf829
#11 [f5a73fe8] handle_edge_irq at c10d2958
--- <hard IRQ> ---
bt: cannot resolve stack trace:
bt: text symbols on stack:
> OK thanks. Please send patches as required.
Like above, bt is still not working yet though. Attached the patch to fix typo.
Thanks.
--
OGAWA Hirofumi <[email protected]>
Fix typo "handle_IRQ" to "handle_irq"
---
kernel.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff -puN kernel.c~handle_IRQ-typo kernel.c
--- crash-32/kernel.c~handle_IRQ-typo 2017-02-16 23:35:59.054738773 +0900
+++ crash-32-hirofumi/kernel.c 2017-02-16 23:35:59.055738778 +0900
@@ -2967,7 +2967,7 @@ back_trace(struct bt_info *bt)
case BT_HARDIRQ:
if (kernel_symbol_exists("hardirq_stack") &&
STRUCT_EXISTS("irq_stack")) {
- btloc.hp->eip = symbol_value("handle_IRQ");
+ btloc.hp->eip = symbol_value("handle_irq");
btloc.hp->esp = ULONG(bt->stackbuf);
} else {
btloc.hp->eip = symbol_value("do_IRQ");
@@ -3058,7 +3058,7 @@ restore_stack(struct bt_info *bt)
case BT_HARDIRQ:
if (kernel_symbol_exists("hardirq_stack") &&
STRUCT_EXISTS("irq_stack")) {
- bt->instptr = symbol_value("handle_IRQ");
+ bt->instptr = symbol_value("handle_irq");
bt->stkptr = ULONG(bt->stackbuf);
} else {
retvaddr = ULONG(bt->stackbuf +
_
--
Crash-utility mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/crash-utility