Re: Question regarding thread_struct

From: Imanpreet Arora
Date: Tue Mar 08 2005 - 12:57:12 EST

On Tue, 08 Mar 2005 12:28:42 -0500, Robert Love <rml@xxxxxxxxxx> wrote:
> On Tue, 2005-03-08 at 22:57 +0530, Imanpreet Arora wrote:
> > This has been a doubt for a couple of days, and I am wondering if this
> > one could also be cleared. When you say kernel stack, can't be resized
> >
> >
> > a) Does it mean that the _whole_ of the kernel is restricted to
> > that 8K or 16K of memory?
> Actually, 4K or 8K these days for x86. But, no, it means that EACH
> PROCESS is constrained to the kernel stack. The stacks are per-process.
> The kernel never "runs on its own" -- it is always in the context of a
> process (which has its own kernel stack) or an interrupt handler (which
> either shares the previous process's stack or has its own stack,
> depending on CONFIG_IRQSTACKS).

Thanks again, but if the whole of the kernel is restricted to couple of pages.

Does this mean

a) the whole of the kernel including drivers is restricted to couple of pages.

b) Or with a more probability, I think what you actually mean is that
whenever there is an interrupt by any driver it runs in either context
of the current process or depending upon CONFIG_IRQSTACKS.

If you could just quote the chapter, in your book which contains
information about this, that would be more than sufficient.

> > b) Or does it mean that a particular stack for a particular
> > process, can't be resized?
> Yes, I just said that in the previous email. The kernel stack cannot be
> resized. It is fixed. It is one or two pages, depending on configure
> option. That is, 4 or 8K.
> The _user-space_ stack, what the application actually uses, is
> dynamically resizable. But we are not talking about that.
> > c) And for that matter how exactly do we define a kernel stack?
> I don't know what you mean. alloc_thread_info() creates the thread_info
> structure and stack.

Actually what I asked above was "how exactly does one define and
differentiate kernel stack", as against "user-stack". I think I always
knew it but couple of clouds were coming over after reading your first
mail. Also if each thread has a kernel stack how is it allocated at
first place (alloc_thread_info)(?)


Imanpreet Singh Arora
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at