freebsd-dev/sys/i386
Bill Paul 6041f1a522 The kthread_create() API is supposed to allow you to create threads
with more than the normal amount of stack pages, however the stack
pointer always wound up being initialized using KSTACK_PAGES. It
should be using td->td_kstack_pages instead. This means that although
the vm subsystem would give you all the stack pages you asked for,
%esp would always be initialized as if you had just 2 pages, and
the rest would go to waste.

I wanted to use the 'give me more stack pages' feature of kthread_create()
because the Intel 2200BG NDIS driver does an alloca() of about 5000 bytes,
which wrecks the stack with the default 2 page size, and I was baffled
that no matter how much code I shoved into thread contexts with
allegedly larger stacks, the thing would still crash unless I changed
KSTACK_PAGES.

Note: this bug is present in _ALL_ arches at this point. Peter has
promised to merge this fix into all of them.
2004-03-22 00:28:38 +00:00
..
acpica These are changes to allow to use the Intel C/C++ compiler (lang/icc) 2004-03-12 21:45:33 +00:00
bios Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
compile
conf Add arl(4): driver for Aironet Arlan 655 wireless adapters. 2004-03-15 22:24:28 +00:00
cpufreq
i386 The kthread_create() API is supposed to allow you to create threads 2004-03-22 00:28:38 +00:00
ibcs2 - Replace wait1() with a kern_wait() function that accepts the pid, 2004-03-17 20:00:00 +00:00
include Introduce the cpumask_t type. The purpose of the type is to create a 2004-03-20 20:41:40 +00:00
isa Removed a vestige of the stl driver. 2004-03-18 02:54:42 +00:00
linux Regenerate. 2004-03-15 22:44:35 +00:00
pci
svr4
Makefile