xv6-cs450/BUGS

53 lines
1.3 KiB
Text
Raw Normal View History

2006-09-18 00:01:12 +02:00
runoff.list:
bootmain.c missing
mmu.h:
funny \ alignment in mmu.h
2006-09-17 21:19:01 +02:00
main.c:
should use static int bcpu to avoid having live
stack variable across the asm volatile that
changes %esp and %ebp.
2006-09-18 00:01:12 +02:00
cpus[0] -> cpus[bcpu]
2006-09-17 21:19:01 +02:00
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.
2006-09-18 00:01:12 +02:00
sched -> switch2scheduler? or just switch?
2006-10-13 21:55:07 +02:00
factor out switching and scheduling code from process code
2006-09-17 21:19:01 +02:00
trap.c
if spin locks are ever held without cli,
trap should call yield() only if nlock == 0
2006-09-18 00:01:12 +02:00
main.c, proc.c, trap.c:
use a constant for 3 (USER).
2006-10-13 21:55:07 +02:00
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)