>pre-process "thread_info" structure at the bottom of the >kernel stack.
>in short, that per-process stack has to exist the whole time >the
>process does, since it's actually keeping track of some >process
>information.  you couldn't do that if you just used the >user-space stack.

Why could not we do that in case of one stack?
Ok. Thread_info structure is stored in this way so that you can access it
directly through stack pointer. Which gives a performance improvement. And
again thread_info is stored in this way because there is a kernel mode stack
concept for each process. If there is no kernel mode stack you can store
thread_info like you store task_struct. task_struct is also required for the
entire life time of the process.

I feel there are two stacks for security reasons but I dont know what they
are precisely.

- A Sahlot


On Thu, Apr 24, 2008 at 7:05 PM, Robert P. J. Day <[EMAIL PROTECTED]>
wrote:

> On Thu, 24 Apr 2008, sahlot arvind wrote:
>
> > Yes. I agree with Robert. There are two stacks per process. But why
> > cannot we just use one stack as I said earlier?
>
> while there may be other reasons, there's one obvious one -- as i
> mentioned in my earlier email, the kernel likes to store a small,
> pre-process "thread_info" structure at the bottom of the kernel stack.
> in short, that per-process stack has to exist the whole time the
> process does, since it's actually keeping track of some process
> information.  you couldn't do that if you just used the user-space
> stack.
>
> rday
> --
>
> ========================================================================
> Robert P. J. Day
> Linux Consulting, Training and Annoying Kernel Pedantry:
>    Have classroom, will lecture.
>
> http://crashcourse.ca                          Waterloo, Ontario, CANADA
> ========================================================================
>



-- 
http://linuxexplained.blogspot.com

Reply via email to