kernel内核栈的检测

目前内核(4.12)栈的大小是16K

liclude/linux/sched.h

union thread_union {
#ifndef CONFIG_THREAD_INFO_IN_TASK
    struct thread_info thread_info;
#endif
    unsigned long stack[THREAD_SIZE/sizeof(long)];
};

#define THREAD_SIZE        16384

可以看到栈大小被写死16K,且没有参数可以调整除非改源码


通过echo 1 > /proc/sys/kernel/stack_tracer_enabled 是能内核栈的检测

其中stack_max_size 表示内核栈使用的峰值。stack_trace 表示此峰值下的callstack和callstack中个个函数使用的栈的大小

kernel内核栈的检测