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.
This commit is contained in:
parent
9e2934e66a
commit
293815b90a
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user