Re: [PATCH] Documentation: x86: fix thread_info's position

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: David Laight
> Sent: 10 November 2020 23:03

Thank you for your review!

> Nope, most stacks 'grow down'.
> So the first item pushed is at address 8k (for 8k stacks).

Yep, most stacks 'grow down'. But the zero offset of a stack is also
at address 8k(for 8k stack).

> The bit about the kernel 4.9 changes doesn't read well at all.
> I think the commas are just wrong.

I’m sorry for that, because my English is not very well.

> You could say something like:
> 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.

Gotcha!


On Tue, Nov 10, 2020 at 11:03 PM David Laight <David.Laight@xxxxxxxxxx> wrote:
>
> From: Yang Mingzhe
> > Sent: 10 November 2020 14:21
> >
> > The bottom of the stack is where the first item was added to the stack,
> > usually at the zero offset. Actually, the thread_info structure at the
> > end of the stack.
>
> Nope, most stacks 'grow down'.
> So the first item pushed is at address 8k (for 8k stacks).
>
> > Please see attached picture:
> > https://github.com/Mutated1994/kernel-beginner/blob/master/kernel-stack.md
> >
> > 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: Yang Mingzhe <cainiao666999@xxxxxxxxx>
> > ---
> >  Documentation/x86/kernel-stacks.rst | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/x86/kernel-stacks.rst b/Documentation/x86/kernel-stacks.rst
> > index 6b0bcf0..b88b9e12 100644
> > --- a/Documentation/x86/kernel-stacks.rst
> > +++ b/Documentation/x86/kernel-stacks.rst
> > @@ -15,7 +15,9 @@ 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 end (since kernel 4.9, the
> > +thread_info has been moved into task_struct, no longer locates at the
> > +end of kernel stack).
>
> So 'bottom' - meaning address 0 is probably right.
> Not sure what happens on the few architectures where pushing values
> onto the stack does increase the stack pointer.
>
> The bit about the kernel 4.9 changes doesn't read well at all.
> I think the commas are just wrong.
> You could say something like:
>
> 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.
>
>         David
>
> -
> Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
> Registration No: 1397386 (Wales)
>




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux