summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-07-04Make size in stat.h be a uint64Frans Kaashoek3-3/+5
Supporting print long using %l (a bit of cheat) Modify ls to print size using %l We should probably update size in inode too.
2019-07-04xFrans Kaashoek1-1/+1
2019-07-03Simplify wakeup1Frans Kaashoek1-11/+5
2019-07-03Apply some corresponding bug fixes from wq branch hereFrans Kaashoek1-27/+25
2019-07-02Remove some debugging codeFrans Kaashoek1-8/+1
2019-07-02Fix a lost wakeup bug: the disk driver's wakeup() can run after theFrans Kaashoek1-65/+50
reading process acquired p->lock and released virtio lock in sleep(), but before the process had set p->status to SLEEPING, because the wakeup tested p->status without holding p's lock. Thus, wakeup can complete without seeing any process SLEEPING and then p sets p->status to SLEEPING. Fix some other issues: - Don't initialize proc lock in allocproc(), because freeproc() sets np->state = UNUSED and allocproc() can choose np and calls initlock() on the process's lock, releasing np's lock accidentally. Move initializing proc's lock to init. - Protect nextpid using ptable.lock (and move into its own function) Some clean up: - Don't acquire p->lock when it p is used in a private way (e.g., exit()/grow()). - Move find_runnable() back into scheduler().
2019-07-02Merge branch 'riscv' into riscv-procFrans Kaashoek13-134/+376
2019-07-02xFrans Kaashoek2-2/+2
2019-07-02Don't start processes at the end of the proc tableFrans Kaashoek1-6/+8
2019-07-02Avoid two cores selecting the same process to runFrans Kaashoek5-30/+53
2019-07-02try to continue from walk() failing to allocate a page-table pageRobert Morris3-8/+17
2019-07-02avoid allocproc() returning a struct proc with non-zero p->szRobert Morris1-0/+2
2019-07-02COW testsRobert Morris2-2/+144
2019-07-02Checkpoint switching to per-process locks, in attempt clarify xv6'sFrans Kaashoek12-79/+133
locking plan, which is a difficult to understand because ptable lock protects many invariants. This implementation has a bug: once in a while xv6 unlocks a proc lock that is locked by another core.
2019-07-02don't enable interrupts until done with sstatus, scause, &cRobert Morris1-4/+6
2019-07-01oops, don't hold mycpu() result across intr_off()Robert Morris1-4/+3
2019-07-01have fork() fail, not panic, if not enough phys memRobert Morris5-16/+94
2019-07-01sbrk() returns a pointer, so it should be 64 bitsRobert Morris4-46/+53
2019-07-01oops, don't hold mycpu() result across intr_off()Robert Morris1-4/+3
2019-07-01timer interrupt in the kernel -> yieldRobert Morris2-4/+15
2019-07-01Checkpoint some progress compiling xv6.pdfFrans Kaashoek2-56/+47
2019-07-01xFrans Kaashoek1-1/+0
2019-07-01Introduce alloc3_desc and UsedArea to make code easier to readFrans Kaashoek3-33/+40
2019-06-13FD_DEVICERobert Morris7-42/+41
2019-06-13for spinlocks, use gcc intrinsics, but say what they compile toRobert Morris2-21/+21
2019-06-13clean up virtio codeRobert Morris6-39/+46
2019-06-13eliminate ramdiskRobert Morris5-10/+2
2019-06-13virtio disk driverRobert Morris12-9/+357
2019-06-11separate source into kernel/ user/ mkfs/Robert Morris72-297/+158
2019-06-06gdb backtraces: -ggdb, -fno-omit-frame-pointer, BSIZE=1024Robert Morris6-6/+47
2019-06-06fix a create()/unlink() deadlockRobert Morris1-13/+18
2019-06-06add plic.cRobert Morris1-0/+63
2019-06-06add kernelvecRobert Morris2-1/+113
2019-06-05make -O work with asm volatile(...)Robert Morris3-35/+35
2019-06-05clean up -WallRobert Morris7-60/+19
2019-06-05push_off() and pop_off() in myproc()Robert Morris2-4/+9
2019-06-05spinlocks using gcc intrinsicsRobert Morris11-104/+95
push_off() / pop_off() set up per-hart plic stuff so all harts get device interrupts
2019-06-05start at support for multiple CPUsRobert Morris21-837/+87
2019-06-04yield if timer interruptRobert Morris1-3/+11
all user tests passed
2019-06-04timer interrupts -> supervisor software interruptRobert Morris6-18/+148
2019-06-04more sbrk fixesRobert Morris5-23/+22
2019-06-04fix a problem with end. make uartputc() wait until h/w is ready.Robert Morris11-23/+32
2019-06-04check that arguments aren't more than a page in exec()Robert Morris1-1/+6
2019-06-04fix exec argcRobert Morris3-16/+16
2019-06-04support read() and write() bigger than one pageRobert Morris12-62/+95
2019-06-03console input and sbrkRobert Morris6-82/+58
2019-06-03xxRobert Morris2-3/+8
2019-06-03push/pop all registers when handling interrupt from kernelRobert Morris7-83/+48
2019-06-03xxRobert Morris1-11/+13
2019-06-03takes one uart input interrupt, then panicsRobert Morris6-6/+108