Prior to kernel 4.9 the thread_info structure was at the bottom of the kernel stack. kernel 4.9 moved it into the task_struct. See commits c65eacb ("sched/core: Allow putting thread_info into task_struct"), 15f4eae ("x86: Move thread_info into task_struct") and 883d50f ("scripts/gdb: fix get_thread_info"). Signed-off-by: Mingzhe Yang <cainiao666999@xxxxxxxxx> --- Documentation/x86/kernel-stacks.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/x86/kernel-stacks.rst b/Documentation/x86/kernel-stacks.rst index 6b0bcf0..e9097f3 100644 --- a/Documentation/x86/kernel-stacks.rst +++ b/Documentation/x86/kernel-stacks.rst @@ -15,7 +15,8 @@ Like all other architectures, x86_64 has a kernel stack for every active thread. These thread stacks are THREAD_SIZE (2*PAGE_SIZE) big. These stacks contain useful data as long as a thread is alive or a zombie. While the thread is in user space the kernel stack is empty -except for the thread_info structure at the bottom. +except for the thread_info structure at the bottom (since kernel 4.9, +the thread_info structure has been moved into task_struct). In addition to the per thread stacks, there are specialized stacks associated with each CPU. These stacks are only used while the kernel -- 1.8.3.1