Dave Anderson <[email protected]> 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 <[email protected]>

--
Crash-utility mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/crash-utility

Reply via email to