• Vasily Gorbik's avatar
    s390/unwind: make reuse_sp default when unwinding pt_regs · 97806dfb
    Vasily Gorbik authored
    Currently unwinder yields 2 entries when pt_regs are met:
    sp="address of pt_regs itself" ip=pt_regs->psw
    sp=pt_regs->gprs[15] ip="r14 from stack frame pointed by pt_regs->gprs[15]"
    
    And neither of those 2 states (combination of sp and ip) ever happened.
    
    reuse_sp has been introduced by commit a1d863ac ("s390/unwind: fix
    mixing regs and sp"). reuse_sp=true makes unwinder keen to produce the
    following result, when pt_regs are given (as an arg to unwind_start):
    sp=pt_regs->gprs[15] ip=pt_regs->psw
    sp=pt_regs->gprs[15] ip="r14 from stack frame pointed by pt_regs->gprs[15]"
    
    The first state is an actual state in which a task was when pt_regs were
    collected. The second state is marked unreliable and is for debugging
    purposes to cover the case when a task has been interrupted in between
    stack frame allocation and writing back_chain - in this case r14 might
    show an actual caller.
    
    Make unwinder behaviour enabled via reuse_sp=true default and drop the
    special case handling.
    Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    97806dfb
unwind.h 2.77 KB