Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Jan 2008 16:58:48 -0800
From:      Sam Leffler <sam@errno.com>
To:        Alexander Motin <mav@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/sys proc.h
Message-ID:  <47A11D48.9040909@errno.com>
In-Reply-To: <47A0F6CE.3020407@FreeBSD.org>
References:  <200801302124.m0ULOANe012024@repoman.freebsd.org> <47A0EDC4.3040301@errno.com> <47A0F6CE.3020407@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Alexander Motin wrote:
> 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.
>
Your change guarantees code will silently break at some point in time 
(almost certainly long after anyone remembers this email exchange).  
Just because you don't have a system where this fails doesn't justify 
adding a hack like this.  I repeat, please fix it or remove it before 
anyone uses it.  My suggestion is you make this MD and on architectures 
where you haven't tested it you add a #error.

    Sam




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