Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Jan 2008 00:14:38 +0200
From:      Alexander Motin <mav@FreeBSD.org>
To:        Sam Leffler <sam@errno.com>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/sys proc.h
Message-ID:  <47A0F6CE.3020407@FreeBSD.org>
In-Reply-To: <47A0EDC4.3040301@errno.com>
References:  <200801302124.m0ULOANe012024@repoman.freebsd.org> <47A0EDC4.3040301@errno.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Sam Leffler wrote:
> Alexander Motin wrote:
>> mav         2008-01-30 21:24:10 UTC
>>
>>   FreeBSD src repository
>>
>>   Modified files:
>>     sys/sys              proc.h   Log:
>>   Implement GET_STACK_USAGE() macro to get the current kernel thread 
>> stack usage.
>>   This implemntation made for growing down stack organization like 
>> i386/amd64
>>   platforms have, but prefers different machine dependent version if 
>> it is present.
> 
> I think it is a mistake to fallback to a MD implementation; your MI 
> implementation is broken on architectures that do not use the model you 
> used so you any user of this will silently fail on such architectures.  
> I suggest you need to fix this before you use this macro in any MI code.

This implementation covers the most of popular architectures. The only 
architecture with different stack organization recalled in maillist was 
ia64 which has two stacks with local variables part is still growing 
down. As I have no work experience with architectures other then 
i386/amd64 I will gladly accept any help with implementing this.

This time I am going to use this as a hint for stack protection engine 
in netgraph subsystem. In case of incorrect implementation there could 
be only two consequences: or nothing will change from present state for 
stack growing down, but differently (ia64). or protection become 
paranoid but slow for stack growing up.

-- 
Alexander Motin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47A0F6CE.3020407>