Kernel thread stack usage

Julian Elischer julian at elischer.org
Sun Nov 11 20:49:59 PST 2007


Marcel Moolenaar wrote:
> 
> 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.
> 

so one could write something that detects tha tyou are getting close,
but it would have to be machine dependent..



More information about the freebsd-arch mailing list