diff options
author | Vasily Gorbik <gor@linux.ibm.com> | 2019-11-22 15:58:42 +0100 |
---|---|---|
committer | Vasily Gorbik <gor@linux.ibm.com> | 2019-11-30 10:52:45 +0100 |
commit | 97806dfb6f3838ee4b7bc69e6f160d83eadbc74a (patch) | |
tree | 948227e65b97d4901b2fba6de1b9a36c871f54de /.clang-format | |
parent | s390/unwind: report an error if pt_regs are not on stack (diff) | |
download | linux-97806dfb6f3838ee4b7bc69e6f160d83eadbc74a.tar.xz linux-97806dfb6f3838ee4b7bc69e6f160d83eadbc74a.zip |
s390/unwind: make reuse_sp default when unwinding pt_regs
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 a1d863ac3e10 ("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: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to '.clang-format')
0 files changed, 0 insertions, 0 deletions