On 3/21/2024 12:54 PM, Ingo Molnar wrote:
* Xin Li (Intel) <xin@xxxxxxxxx> wrote:
The stack of a task has been separated from the memory of a task_struct
struture for a long time on x86, as a result __{start,end}_init_task no
longer mark the start and end of the init_task structure, but its stack
only.
Rename __{start,end}_init_task to __{start,end}_init_stack.
Note other architectures are not affected because __{start,end}_init_task
are used on x86 only.
Signed-off-by: Xin Li (Intel) <xin@xxxxxxxxx>
---
Change since v1:
* Revert an accident insane change, init_task to init_stack (Jürgen Groß).
---
arch/x86/include/asm/processor.h | 4 ++--
arch/x86/kernel/head_64.S | 2 +-
arch/x86/xen/xen-head.S | 2 +-
include/asm-generic/vmlinux.lds.h | 6 +++---
4 files changed, 7 insertions(+), 7 deletions(-)
Note that this is now in conflict with this cleanup by Brian Gerst:
2cb16181a1d1 x86/boot: Simplify boot stack setup
I like this patch, which does something that I'm also doing, further
x86_64 doesn't have the concept of TOP_OF_KERNEL_STACK_PADDING, and
I guess it was extended from x86_32 but defined to 0 just for code
consistency.
Yes, FRED code uses TOP_OF_KERNEL_STACK_PADDING, but a FRED event frame
could contain different amount of information for different event types,
e.g., #MCE could push extra bytes of information, or perhaps even for
different instances of the same event type. Thus the size of an event
frame pushed by a FRED CPU is not fixed and the address of the pt_regs
structure that is used to save the user level context of current task is
not at a fixed offset from the top of current task kernel stack.
.. which removed __end_init_task[] entirely.
Not really, but __end_init_task[] is only used to initialize
__top_init_kernel_stack.
I will rebase and send v3.
Thanks!
Xin