Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2019-07-04 | Make size in stat.h be a uint64 | Frans Kaashoek | 3 | -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-04 | x | Frans Kaashoek | 1 | -1/+1 | |
2019-07-03 | Simplify wakeup1 | Frans Kaashoek | 1 | -11/+5 | |
2019-07-03 | Apply some corresponding bug fixes from wq branch here | Frans Kaashoek | 1 | -27/+25 | |
2019-07-02 | Remove some debugging code | Frans Kaashoek | 1 | -8/+1 | |
2019-07-02 | Fix a lost wakeup bug: the disk driver's wakeup() can run after the | Frans Kaashoek | 1 | -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-02 | Merge branch 'riscv' into riscv-proc | Frans Kaashoek | 13 | -134/+376 | |
2019-07-02 | x | Frans Kaashoek | 2 | -2/+2 | |
2019-07-02 | Don't start processes at the end of the proc table | Frans Kaashoek | 1 | -6/+8 | |
2019-07-02 | Avoid two cores selecting the same process to run | Frans Kaashoek | 5 | -30/+53 | |
2019-07-02 | try to continue from walk() failing to allocate a page-table page | Robert Morris | 3 | -8/+17 | |
2019-07-02 | avoid allocproc() returning a struct proc with non-zero p->sz | Robert Morris | 1 | -0/+2 | |
2019-07-02 | COW tests | Robert Morris | 2 | -2/+144 | |
2019-07-02 | Checkpoint switching to per-process locks, in attempt clarify xv6's | Frans Kaashoek | 12 | -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-02 | don't enable interrupts until done with sstatus, scause, &c | Robert Morris | 1 | -4/+6 | |
2019-07-01 | oops, don't hold mycpu() result across intr_off() | Robert Morris | 1 | -4/+3 | |
2019-07-01 | have fork() fail, not panic, if not enough phys mem | Robert Morris | 5 | -16/+94 | |
2019-07-01 | sbrk() returns a pointer, so it should be 64 bits | Robert Morris | 4 | -46/+53 | |
2019-07-01 | oops, don't hold mycpu() result across intr_off() | Robert Morris | 1 | -4/+3 | |
2019-07-01 | timer interrupt in the kernel -> yield | Robert Morris | 2 | -4/+15 | |
2019-07-01 | Checkpoint some progress compiling xv6.pdf | Frans Kaashoek | 2 | -56/+47 | |
2019-07-01 | x | Frans Kaashoek | 1 | -1/+0 | |
2019-07-01 | Introduce alloc3_desc and UsedArea to make code easier to read | Frans Kaashoek | 3 | -33/+40 | |
2019-06-13 | FD_DEVICE | Robert Morris | 7 | -42/+41 | |
2019-06-13 | for spinlocks, use gcc intrinsics, but say what they compile to | Robert Morris | 2 | -21/+21 | |
2019-06-13 | clean up virtio code | Robert Morris | 6 | -39/+46 | |
2019-06-13 | eliminate ramdisk | Robert Morris | 5 | -10/+2 | |
2019-06-13 | virtio disk driver | Robert Morris | 12 | -9/+357 | |
2019-06-11 | separate source into kernel/ user/ mkfs/ | Robert Morris | 72 | -297/+158 | |
2019-06-06 | gdb backtraces: -ggdb, -fno-omit-frame-pointer, BSIZE=1024 | Robert Morris | 6 | -6/+47 | |
2019-06-06 | fix a create()/unlink() deadlock | Robert Morris | 1 | -13/+18 | |
2019-06-06 | add plic.c | Robert Morris | 1 | -0/+63 | |
2019-06-06 | add kernelvec | Robert Morris | 2 | -1/+113 | |
2019-06-05 | make -O work with asm volatile(...) | Robert Morris | 3 | -35/+35 | |
2019-06-05 | clean up -Wall | Robert Morris | 7 | -60/+19 | |
2019-06-05 | push_off() and pop_off() in myproc() | Robert Morris | 2 | -4/+9 | |
2019-06-05 | spinlocks using gcc intrinsics | Robert Morris | 11 | -104/+95 | |
push_off() / pop_off() set up per-hart plic stuff so all harts get device interrupts | |||||
2019-06-05 | start at support for multiple CPUs | Robert Morris | 21 | -837/+87 | |
2019-06-04 | yield if timer interrupt | Robert Morris | 1 | -3/+11 | |
all user tests passed | |||||
2019-06-04 | timer interrupts -> supervisor software interrupt | Robert Morris | 6 | -18/+148 | |
2019-06-04 | more sbrk fixes | Robert Morris | 5 | -23/+22 | |
2019-06-04 | fix a problem with end. make uartputc() wait until h/w is ready. | Robert Morris | 11 | -23/+32 | |
2019-06-04 | check that arguments aren't more than a page in exec() | Robert Morris | 1 | -1/+6 | |
2019-06-04 | fix exec argc | Robert Morris | 3 | -16/+16 | |
2019-06-04 | support read() and write() bigger than one page | Robert Morris | 12 | -62/+95 | |
2019-06-03 | console input and sbrk | Robert Morris | 6 | -82/+58 | |
2019-06-03 | xx | Robert Morris | 2 | -3/+8 | |
2019-06-03 | push/pop all registers when handling interrupt from kernel | Robert Morris | 7 | -83/+48 | |
2019-06-03 | xx | Robert Morris | 1 | -11/+13 | |
2019-06-03 | takes one uart input interrupt, then panics | Robert Morris | 6 | -6/+108 | |