Subject: Re: stack limit for sun3/sun3x
To: None <jeremy@netbsd.org>
From: None <SigmFSK@aol.com>
List: port-sun3
Date: 10/16/2006 22:52:44
In a message dated 10/16/2006 8:48:28 P.M.  Eastern Standard Time, 
jeremy@netbsd.org writes:

Arthur, the stack limit  on the sun3x is determined from the  file

sys/arch/sun3/include/vmparam3x.h

The relevant part is this  snippet:

#ifndef    MAXSSIZ
#define     MAXSSIZ         (32*1024*1024)        /* max stack size  */
#endif

So the answer to your question is 32 megabytes.  

----
 
Hi Jeremy:  That does seem clear, but it seems I can't use nearly that  much 
on a real sun3x.
 
On a real sun3/80, running NetBSD 3.0, I run the following  program that is 
designed to quickly use up stack space:
 
#include <stdio.h>
 
int val(int myval)
{
if (myval == 0) {
return 0;
} else {
return  val(myval-1);
}
}
 
int main()
{
unsigned int i;
for (i=1000000;  i<=1000000; i++) printf("%d\n",i,val(i));
}
 
I did the following steps:
gcc main.c
gdb a.out
b main
run
info reg (examining the SP - 0xf7ffee20
run (wait a while for it to get a seg fault)
info reg (examining the SP - 0xf7dffffc
 
The SP has decreased by 0x1fee24.  Inside TME, SP decreases by 0x7edb0  
before seg faulting (1/4 of the stack size used as the real sun3x).
 
I was confused by the difference between sun3x and TME's sun3 stack limit  
differences, but now I'm extra confused that I don't see the real sun3x's SP  
decreasing by 32Mb before seg faulting.
 
limit -h (in real sun3x and TME) shows the stacksize as 32768 kbytes, just  
as the MAXSSIZ in both vmparam3.h and vmparam3x.h.
 
thanks,
arthur