[Crash-utility] [PATCH] Fix x86 initialization for {hard, soft}irq_ctx
OGAWA Hirofumi
hirofumi at mail.parknet.co.jp
Fri Feb 17 15:10:25 UTC 2017
Dave Anderson <anderson at redhat.com> writes:
>> [BTW, current x86_get_pc() uses inactive_task_frame_ret_addr to get
>> pc. However, inactive_task_frame is only valid if task is sleeping
>> state. (running task may overwrite inactive_task_frame already.) I'm
>> not sure whether we should check is_task_active() or not. Even if
>> checking is_task_active(), we can't get pc correctly anyway.]
>
> Well, x86_get_pc() should only be called in the case of sleeping
> tasks because each dumpfile type has its own function to try to
> find the active task registers. For example, on a kdump:
>
> cmd_bt()
> back_trace()
> get_kdump_regs()
> get_netdump_regs()
> get_netdump_regs_x86()
>
> get_netdump_regs_x86() *should* find the starting point hooks.
> If it fails to do so, it will default to machdep->get_stack_frame()
> and ultimately x86_get_pc(). So if it gets there, the backtrace
> is pretty much guaranteed to be invalid.
Ah, this might be because of the above hardirq_tasks[] bug.
Thanks.
--
OGAWA Hirofumi <hirofumi at mail.parknet.co.jp>
More information about the Crash-utility
mailing list