089abdad44
process context ('reaper'). From within the exiting process context: * deactivate pmap and free vmspace while we can still block * introduce MD cpu_lwp_free() - this cleans all MD-specific context (such as FPU state), and is the last potentially blocking operation; all of cpu_wait(), and most of cpu_exit(), is now folded into cpu_lwp_free() * process is now immediatelly marked as zombie and made available for pickup by parent; the remaining last lwp continues the exit as fully detached * MI (rather than MD) code bumps uvmexp.swtch, cpu_exit() is now same for both 'process' and 'lwp' exit uvm_lwp_exit() is modified to never block; the u-area memory is now always just linked to the list of available u-areas. Introduce (blocking) uvm_uarea_drain(), which is called to release the excessive u-area memory; this is called by parent within wait4(), or by pagedaemon on memory shortage. uvm_uarea_free() is now private function within uvm_glue.c. MD process/lwp exit code now always calls lwp_exit2() immediatelly after switching away from the exiting lwp. g/c now unneeded routines and variables, including the reaper kernel thread |
||
---|---|---|
.. | ||
Makefile | ||
acia.h | ||
ahdilabel.h | ||
ansi.h | ||
aout_machdep.h | ||
asm.h | ||
bswap.h | ||
bus.h | ||
cdefs.h | ||
cpu.h | ||
cpufunc.h | ||
db_machdep.h | ||
disklabel.h | ||
dma.h | ||
elf_machdep.h | ||
endian.h | ||
endian_machdep.h | ||
float.h | ||
frame.h | ||
ieee.h | ||
ieeefp.h | ||
int_const.h | ||
int_fmtio.h | ||
int_limits.h | ||
int_mwgwtypes.h | ||
int_types.h | ||
intr.h | ||
iomap.h | ||
isa_machdep.h | ||
isapnp_machdep.h | ||
kcore.h | ||
limits.h | ||
lock.h | ||
math.h | ||
mcontext.h | ||
mfp.h | ||
msioctl.h | ||
mtpr.h | ||
param.h | ||
pcb.h | ||
pci_machdep.h | ||
pmap.h | ||
pmc.h | ||
proc.h | ||
profile.h | ||
psl.h | ||
pte.h | ||
ptrace.h | ||
reg.h | ||
scu.h | ||
setjmp.h | ||
signal.h | ||
stdarg.h | ||
svr4_machdep.h | ||
trap.h | ||
types.h | ||
varargs.h | ||
video.h | ||
vmparam.h |