xref: /xv6-public/BUGS (revision b4c1a88d)
1index:
2	SEG_NULL, SEG_ASM not in the index
3
4runoff.list:
5	bootmain.c missing
6
7mmu.h:
8	funny \ alignment in mmu.h
9
10main.c:
11	should use static int bcpu to avoid having live
12	stack variable across the asm volatile that
13	changes %esp and %ebp.
14
15	cpus[0] -> cpus[bcpu]
16
17init.c:
18	should while(wait() >= 0);
19	not just wait();
20
21proc.c:
22	comment at top of scheduler() should say
23		via longjmp back to the scheduler
24	not
25		via longjmp back to the top of scheduler
26
27	sched should panic if state == RUNNING.
28
29	forkret comment should say "Return" not "return"
30
31	as a consequence of the implementation of proc_kill,
32	any loop calling sleep should check for p->killed
33	and be able to break out with an error return.
34
35	can swap procdump up after proc_kill
36	and then have proc_exit and proc_wait on same sheet
37
38	proc_exit should wake up proc[1] if any
39	reparenting was done.
40
41	sched ->  switch2scheduler?  or just switch?
42
43	factor out switching and scheduling code from process code
44
45trap.c
46	if spin locks are ever held without cli,
47	trap should call yield() only if nlock == 0
48
49main.c, proc.c, trap.c:
50	use a constant for 3 (USER).
51
52ide.c: synchronous disk write -> polling disk write.  search for
53       (a)synchronous; xv6 doesn't have asynchronous writes.
54
55fs.c: split all name operations off in name.c?  (starting with namei but move
56      wdir keep in fs.c)
57
58      unlink . and .. should be disallowed
59
60ls.c: apply tim's patch
61
62