diff options
author | Peter Wemm <peter@FreeBSD.org> | 2002-04-05 01:57:45 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2002-04-05 01:57:45 +0000 |
commit | 911fc92344b6bf19e1d34124ab70a040009051fa (patch) | |
tree | 83854483aaaba7cf34c995d96d9fb1123b4fc7fa | |
parent | f35c4ba63a0b2e6b2f5a8267dc38d0f3cd3482e5 (diff) | |
download | src-911fc92344b6bf19e1d34124ab70a040009051fa.tar.gz src-911fc92344b6bf19e1d34124ab70a040009051fa.zip |
Increase the size of the register stack storage on ia64 from 32K to 2MB so
that we can compile gcc. This is a hack because it adds a fixed 2MB to
each process's VSIZE regardless of how much is really being used since
there is no grow-up stack support. At least it isn't physical memory.
Sigh.
Add a sysctl to enable tweaking it for new processes.
Notes
Notes:
svn path=/head/; revision=93850
-rw-r--r-- | sys/kern/kern_exec.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 36003c6f734a..1b32699722c9 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -95,6 +95,12 @@ SYSCTL_ULONG(_kern, OID_AUTO, ps_arg_cache_limit, CTLFLAG_RW, int ps_argsopen = 1; SYSCTL_INT(_kern, OID_AUTO, ps_argsopen, CTLFLAG_RW, &ps_argsopen, 0, ""); +#ifdef __ia64__ +/* XXX HACK */ +static int regstkpages = 256; +SYSCTL_INT(_machdep, OID_AUTO, regstkpages, CTLFLAG_RW, ®stkpages, 0, ""); +#endif + /* * Each of the items is a pointer to a `const struct execsw', hence the * double pointer here. @@ -622,7 +628,7 @@ exec_new_vmspace(imgp) vm_offset_t bsaddr; bsaddr = USRSTACK - 2*maxssiz; error = vm_map_find(&vmspace->vm_map, 0, 0, &bsaddr, - 4*PAGE_SIZE, 0, + regstkpages * PAGE_SIZE, 0, VM_PROT_ALL, VM_PROT_ALL, 0); FIRST_THREAD_IN_PROC(p)->td_md.md_bspstore = bsaddr; } |