Kernel thread stack usage

Marcel Moolenaar xcllnt at mac.com
Sun Nov 11 17:10:58 PST 2007


On Nov 11, 2007, at 12:43 PM, Alexander Motin wrote:

> Marcel Moolenaar wrote:
>> This is not theoretical at all: On ia64 there are 2 stacks. One
>> growing down and one growing up. The downward stack is used for
>> stack-based variables and the pward growing stack is used by
>> the processor for stacked registers.
>
> Hmm, interesting. And which one is pointed by td_kstack there? Or  
> they are using same segment but from opposite sides?

The latter. The td_kstack variable points to the bottom,
which is where the register stack starts. The memory stack
start from td_kstack + td_kstack_size.

>> The code suggested will not be meaningful on ia64.
>
> Why? If variable stack growing down and it's segment is pointed by  
> td_kstack then where is the problem? Or you mean that system will  
> die earlier when those two stacks in same segment will reach each  
> other?

It's the register stack that grows faster in general and
yes, they grow towards each other so they can eventually
run into each other.

-- 
Marcel Moolenaar
xcllnt at mac.com




More information about the freebsd-arch mailing list