[PATCH v3 4/4] ARM: stacktrace: Convert stacktrace to generic ARCH_STACKWALK

Linus Walleij linus.walleij at linaro.org
Wed Jul 27 00:25:18 PDT 2022


On Wed, Jul 27, 2022 at 6:03 AM Li Huafei <lihuafei1 at huawei.com> wrote:

> Historically architectures have had duplicated code in their stack trace
> implementations for filtering what gets traced. In order to avoid this
> duplication some generic code has been provided using a new interface
> arch_stack_walk(), enabled by selecting ARCH_STACKWALK in Kconfig, which
> factors all this out into the generic stack trace code. Convert ARM to
> use this common infrastructure.
>
> When initializing the stack frame of the current task, arm64 uses
> __builtin_frame_address(1) to initialize the frame pointer, skipping
> arch_stack_walk(), see the commit c607ab4f916d ("arm64: stacktrace:
> don't trace arch_ stack_walk()"). Since __builtin_frame_address(1) does
> not work on ARM, unwind_frame() is used to unwind the stack one layer
> forward before calling walk_stackframe().
>
> Signed-off-by: Li Huafei <lihuafei1 at huawei.com>

Looks good to me.
Reviewed-by: Linus Walleij <linus.walleij at linaro.org>

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list