Message ID | 20240328184020.34278-1-puranjay12@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | riscv: ftrace: make stack walk more robust. | expand |
Puranjay Mohan <puranjay12@gmail.com> writes: > The current stack walker in riscv implemented in walk_stackframe() provides > the PC to a callback function when it unwinds the stacks. This doesn't > allow implementing stack walkers that need access to more information like > the frame pointer, etc. > > This series makes walk_stackframe() provide a unwinde_state structure to > callback functions. This structure has all the information that > walk_stackframe() can provide. > > Currently, there are four users of walk_stackframe(): return_address(), > perf_callchain_kernel(), dump_backtrace(), and __get_wchan(). All of these > have been converted to use arch_stack_walk() rather than calling > walk_stackframe() directly. > > We need this to implement arch_bpf_stack_walk() that provides a callback > that needs the FP, SP, and PC. This will be needed for implementing BFP > exceptions for RISCV. Hmm, I wonder if it's easier to have these two patches as part of the BPF exception series, instead of having the dependencies be cross-tree? > There are no functional changes in this series. > > I have tested this by crashing the kernel and looking at the stack trace > with and without CONFIG_FRAME_POINTER I have two really minor style nits, but regardless if they're fixed or not: Reviewed-by: Björn Töpel <bjorn@rivosinc.com>