Process running / destruction outline
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 11 Aug 2009 02:14:41 +0000 (19:14 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 12 Aug 2009 19:43:28 +0000 (12:43 -0700)
commit1f517cb398ac0d1cdac54aa63d5ddcc4855e4f0b
tree1a587955e59557e9b788f45c993e2419e4252831
parent29aa73053bbad2840903edb491464ffbc78a75f5
Process running / destruction outline

Sorts out a decent outline for how proc_run, proc_startcore, and
proc_destroy interact, given multicored processes.  The state
transitions should be good with regard to a lot of races.  cr3's are
protected with incref.

Schedule related functions have a better interface, and processes now
sit on TAILQs (lists) and can move around between lists (like a runnable
list).

Things to keep in mind: when do we leave a process's context, and when
do we need to bundle kernel state (stack) so we can "restart" kernel
processing later?  Among other things.
22 files changed:
kern/arch/i386/atomic.h
kern/arch/i386/env.c
kern/arch/i386/smp_boot.c
kern/arch/i386/trap.c
kern/arch/i386/trapentry.S
kern/arch/sparc/trap.c
kern/include/env.h
kern/include/process.h
kern/include/sched.h [deleted file]
kern/include/schedule.h [new file with mode: 0644]
kern/include/smp.h
kern/src/Makefrag
kern/src/env.c
kern/src/manager.c
kern/src/monitor.c
kern/src/pmap.c
kern/src/process.c
kern/src/schedule.c [new file with mode: 0644]
kern/src/smp.c
kern/src/syscall.c
kern/src/testing.c
kern/src/workqueue.c