From owner-freebsd-arch@FreeBSD.ORG Mon Nov 12 01:10:58 2007 Return-Path: Delivered-To: freebsd-arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6FB6016A419; Mon, 12 Nov 2007 01:10:58 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from smtpoutm.mac.com (smtpoutm.mac.com [17.148.16.71]) by mx1.freebsd.org (Postfix) with ESMTP id 4F47C13C494; Mon, 12 Nov 2007 01:10:58 +0000 (UTC) (envelope-from xcllnt@mac.com) Received: from mac.com (asmtp001-s [10.150.69.64]) by smtpoutm.mac.com (Xserve/smtpout008/MantshX 4.0) with ESMTP id lAC1Am8M018054; Sun, 11 Nov 2007 17:10:48 -0800 (PST) Received: from [192.168.1.101] (209-128-86-226.bayarea.net [209.128.86.226]) (authenticated bits=0) by mac.com (Xserve/asmtp001/MantshX 4.0) with ESMTP id lAC1AhK5006734 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Sun, 11 Nov 2007 17:10:44 -0800 (PST) Message-Id: <06618562-A789-4B5E-94BF-0ED8AB51A1FF@mac.com> From: Marcel Moolenaar To: Alexander Motin In-Reply-To: <4737696A.7050605@FreeBSD.org> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v912) Date: Sun, 11 Nov 2007 17:10:43 -0800 References: <1191187393.00807485.1191175801@10.7.7.3> <1191189248.00807488.1191177603@10.7.7.3> <4736D8AF.7010209@FreeBSD.org> <20071111163815.GJ37471@deviant.kiev.zoral.com.ua> <47373C5E.2080800@elischer.org> <0414590D-0C2A-4EBD-9617-7AC193ABD1E8@mac.com> <4737696A.7050605@FreeBSD.org> X-Mailer: Apple Mail (2.912) Cc: Kostik Belousov , Julian Elischer , freebsd-arch@FreeBSD.org Subject: Re: Kernel thread stack usage X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Nov 2007 01:10:58 -0000 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@mac.com