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