• Yang Shi's avatar
    tracing, kasan: Silence Kasan warning in check_stack of stack_tracer · 6e22c836
    Yang Shi authored
    When enabling stack trace via "echo 1 > /proc/sys/kernel/stack_tracer_enabled",
    the below KASAN warning is triggered:
    
    BUG: KASAN: stack-out-of-bounds in check_stack+0x344/0x848 at addr ffffffc0689ebab8
    Read of size 8 by task ksoftirqd/4/29
    page:ffffffbdc3a27ac0 count:0 mapcount:0 mapping:          (null) index:0x0
    flags: 0x0()
    page dumped because: kasan: bad access detected
    CPU: 4 PID: 29 Comm: ksoftirqd/4 Not tainted 4.5.0-rc1 #129
    Hardware name: Freescale Layerscape 2085a RDB Board (DT)
    Call trace:
    [<ffffffc000091300>] dump_backtrace+0x0/0x3a0
    [<ffffffc0000916c4>] show_stack+0x24/0x30
    [<ffffffc0009bbd78>] dump_stack+0xd8/0x168
    [<ffffffc000420bb0>] kasan_report_error+0x6a0/0x920
    [<ffffffc000421688>] kasan_report+0x70/0xb8
    [<ffffffc00041f7f0>] __asan_load8+0x60/0x78
    [<ffffffc0002e05c4>] check_stack+0x344/0x848
    [<ffffffc0002e0c8c>] stack_trace_call+0x1c4/0x370
    [<ffffffc0002af558>] ftrace_ops_no_ops+0x2c0/0x590
    [<ffffffc00009f25c>] ftrace_graph_call+0x0/0x14
    [<ffffffc0000881bc>] fpsimd_thread_switch+0x24/0x1e8
    [<ffffffc000089864>] __switch_to+0x34/0x218
    [<ffffffc0011e089c>] __schedule+0x3ac/0x15b8
    [<ffffffc0011e1f6c>] schedule+0x5c/0x178
    [<ffffffc0001632a8>] smpboot_thread_fn+0x350/0x960
    [<ffffffc00015b518>] kthread+0x1d8/0x2b0
    [<ffffffc0000874d0>] ret_from_fork+0x10/0x40
    Memory state around the buggy address:
     ffffffc0689eb980: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 f4 f4 f4
     ffffffc0689eba00: f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
    >ffffffc0689eba80: 00 00 f1 f1 f1 f1 00 f4 f4 f4 f3 f3 f3 f3 00 00
                                            ^
     ffffffc0689ebb00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     ffffffc0689ebb80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    
    The stacker tracer traverses the whole kernel stack when saving the max stack
    trace. It may touch the stack red zones to cause the warning. So, just disable
    the instrumentation to silence the warning.
    
    Link: http://lkml.kernel.org/r/1455309960-18930-1-git-send-email-yang.shi@linaro.orgSigned-off-by: default avatarYang Shi <yang.shi@linaro.org>
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    6e22c836
trace_stack.c 10.8 KB