Jinyang He
dc74a9e8a8
LoongArch: Add generic ex-handler unwind in prologue unwinder
...
When exception is triggered, code flow go handle_\exception in some
cases. One of stackframe in this case as follows,
high -> +-------+
| REGS | <- a pt_regs
| |
| | <- ex trigger
| REGS | <- ex pt_regs <-+
| | |
| | |
low -> +-------+ ->unwind-+
When unwinder unwinds to handler_\exception it cannot go on prologue
analysis. Because it is an asynchronous code flow, we should get the
next frame PC from regs->csr_era rather than regs->regs[1]. At init time
we copy the handlers to eentry and also copy them to NUMA-affine memory
named pcpu_handlers if NUMA is enabled. Thus, unwinder cannot unwind
normally. To solve this, we try to give some hints in handler_\exception
and fixup unwinders in unwind_next_frame().
Reported-by: Qing Zhang <zhangqing@loongson.cn >
Signed-off-by: Jinyang He <hejinyang@loongson.cn >
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn >
2023-01-17 11:42:16 +08:00
..
2022-08-12 13:10:11 +08:00
2022-06-03 20:09:28 +08:00
2022-12-14 08:41:53 +08:00
2022-08-25 19:34:59 +08:00
2022-12-14 08:36:11 +08:00
2022-12-14 08:36:11 +08:00
2022-12-14 08:36:11 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:28 +08:00
2022-07-29 18:22:32 +08:00
2022-07-29 18:22:32 +08:00
2022-07-29 18:22:32 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:28 +08:00
2022-12-14 08:41:53 +08:00
2022-06-25 18:06:07 +08:00
2022-10-12 16:36:19 +08:00
2022-12-14 08:36:11 +08:00
2022-06-03 20:09:28 +08:00
2022-10-12 16:36:14 +08:00
2022-10-12 16:36:14 +08:00
2022-06-03 20:09:28 +08:00
2022-10-12 16:36:08 +08:00
2022-10-12 16:36:14 +08:00
2022-10-12 16:36:14 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:29 +08:00
2022-08-12 13:10:11 +08:00
2022-06-03 20:09:28 +08:00
2022-12-19 08:23:27 -06:00
2022-10-12 16:36:14 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:28 +08:00
2022-12-14 08:36:11 +08:00
2022-06-03 20:09:28 +08:00
2022-10-12 16:36:14 +08:00
2022-07-07 17:41:01 +08:00
2022-06-03 20:09:28 +08:00
2023-01-17 11:42:16 +08:00
2022-12-14 08:36:11 +08:00
2022-12-14 08:36:11 +08:00
2022-06-08 11:00:40 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:28 +08:00
2023-01-17 11:42:16 +08:00
2022-10-12 16:36:14 +08:00
2022-06-03 20:09:28 +08:00
2022-12-13 19:19:41 +08:00
2022-07-29 18:22:32 +08:00
2022-10-12 10:35:20 -07:00
2022-06-03 20:09:28 +08:00
2022-10-12 16:36:19 +08:00
2022-06-03 20:09:28 +08:00
2022-07-29 18:22:32 +08:00
2022-10-12 16:36:14 +08:00
2022-12-14 08:41:53 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:29 +08:00
2022-12-14 08:41:54 +08:00
2022-12-14 08:41:54 +08:00
2022-06-03 20:09:29 +08:00
2022-08-25 19:34:59 +08:00
2022-08-12 13:10:11 +08:00
2022-10-12 16:36:08 +08:00
2022-10-12 16:36:14 +08:00
2022-12-11 18:12:11 -08:00
2022-10-12 16:36:14 +08:00
2022-12-13 19:29:45 -08:00
2022-06-03 20:09:28 +08:00
2022-10-29 16:29:31 +08:00
2022-10-29 16:29:31 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:28 +08:00
2022-12-14 08:41:53 +08:00
2022-06-03 20:09:28 +08:00
2022-12-08 14:59:15 +08:00
2022-12-11 18:12:12 -08:00
2022-10-12 16:36:14 +08:00
2022-10-12 16:36:14 +08:00
2022-06-03 20:09:29 +08:00
2022-12-14 08:41:53 +08:00
2022-08-12 13:10:11 +08:00
2022-12-14 08:36:11 +08:00
2022-08-12 13:10:11 +08:00
2022-06-03 20:09:28 +08:00
2022-12-14 08:36:11 +08:00
2022-12-14 08:41:53 +08:00
2022-06-08 11:00:40 +08:00
2022-07-21 10:50:13 -07:00
2022-06-03 20:09:29 +08:00
2022-06-03 20:09:29 +08:00
2022-06-03 20:09:28 +08:00
2022-12-14 08:36:11 +08:00
2022-06-03 20:09:28 +08:00
2023-01-17 11:42:16 +08:00
2022-08-12 13:10:11 +08:00
2022-06-03 20:09:28 +08:00
2022-06-03 20:09:28 +08:00