runoff.list: bootmain.c missing mmu.h: funny \ alignment in mmu.h main.c: should use static int bcpu to avoid having live stack variable across the asm volatile that changes %esp and %ebp. cpus[0] -> cpus[bcpu] init.c: should while(wait() >= 0); not just wait(); proc.c: comment at top of scheduler() should say via longjmp back to the scheduler not via longjmp back to the top of scheduler sched should panic if state == RUNNING. forkret comment should say "Return" not "return" as a consequence of the implementation of proc_kill, any loop calling sleep should check for p->killed and be able to break out with an error return. can swap procdump up after proc_kill and then have proc_exit and proc_wait on same sheet proc_exit should wake up proc[1] if any reparenting was done. sched -> switch2scheduler? or just switch? factor out switching and scheduling code from process code trap.c if spin locks are ever held without cli, trap should call yield() only if nlock == 0 main.c, proc.c, trap.c: use a constant for 3 (USER). ide.c: synchronous disk write -> polling disk write. search for (a)synchronous; xv6 doesn't have asynchronous writes. fs.c: split all name operations off in name.c? (starting with namei but move wdir keep in fs.c) ls.c: apply tim's patch