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 |
||
---|---|---|
.. | ||
ansi.h | ||
aout_machdep.h | ||
asm.h | ||
autoconf.h | ||
bswap.h | ||
bus.h | ||
byte_swap.h | ||
cdefs.h | ||
cpu.h | ||
cpufunc.h | ||
db_machdep.h | ||
disklabel.h | ||
eisa_machdep.h | ||
elf_machdep.h | ||
endian_machdep.h | ||
endian.h | ||
exec.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 | ||
iomod.h | ||
isa_machdep.h | ||
kcore.h | ||
limits.h | ||
loadfile_machdep.h | ||
lock.h | ||
Makefile | ||
math.h | ||
mcontext.h | ||
nvm.h | ||
param.h | ||
pcb.h | ||
pdc.h | ||
pmap.h | ||
pmc.h | ||
proc.h | ||
profile.h | ||
psl.h | ||
pte.h | ||
ptrace.h | ||
reg.h | ||
reloc.h | ||
setjmp.h | ||
signal.h | ||
som.h | ||
spinlock.h | ||
stdarg.h | ||
trap.h | ||
types.h | ||
varargs.h | ||
vmparam.h |