summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-07-24Remove a few no longer relevant filesFrans Kaashoek3-1036/+0
2019-07-24add rtm's cow labFrans Kaashoek1-0/+99
2019-07-24Add relevant docs to repoFrans Kaashoek5-0/+0
2019-07-24Add a few sbrktest for lazy allocatioin labFrans Kaashoek2-0/+178
2019-07-23mstart -> startRobert Morris3-7/+5
2019-07-23simplify kernel mapping callsRobert Morris8-45/+53
2019-07-23a few core -> CPURobert Morris10-560/+7
get rid of PDF generating support
2019-07-23one more TRAMPOLINEFrans Kaashoek1-1/+1
2019-07-22fix mapkstackFrans Kaashoek3-5/+5
2019-07-22Test whether writing below stack failsFrans Kaashoek1-1/+25
2019-07-22Clear U bit for second stack page so that it functions as a guard pageFrans Kaashoek3-1/+13
2019-07-22nitRobert Morris1-2/+2
2019-07-22-MD and TRAPFRAMERobert Morris5-13/+18
2019-07-22Allocate 2 pages per proc, with the top one unmapped.Frans Kaashoek1-1/+1
The page below the last proc is unmapped by default (because the kernel doesn't map anything right below the kernel stacks).
2019-07-22Merge branch 'riscv-kstack' into riscvFrans Kaashoek5-14/+43
2019-07-20not muchRobert Morris1-5/+4
2019-07-20pi for pipe, rather than p, to avoid confusion with proc's p->lockRobert Morris2-58/+51
2019-07-20not muchRobert Morris1-2/+2
2019-07-19it's not clear that the release will always enable interruptsRobert Morris1-3/+3
2019-07-19xFrans Kaashoek1-1/+2
2019-07-19with per-proc locks, we don't need the intr_on() inside the loop.Robert Morris1-3/+3
2019-07-19no need to save/restore 14Robert Morris1-2/+0
2019-07-19One way of supporting a guard page below kstack: allocate kstacks inFrans Kaashoek5-14/+42
procinit() and map them high up (below TRAMPOLNE) with an empty mapping below each stack. Never free a kernel stack. Another way would be to allocate and map them dynamically, but then we need to reload page table when switching processes in scheduler() and/or have a kernel pagetable per proc (if we want k->stack to be the same virtual address in each process). One gotcha: kernel addresses are not equal to physical addresses for stack addresses. A stack address must be translated if we need its physical address (e.g., virtio passes a stack address to the disk).
2019-07-17Merge branch 'riscv' of g.csail.mit.edu:xv6-dev into riscvFrans Kaashoek13-124/+190
2019-07-17Delete x86 commentFrans Kaashoek1-6/+0
2019-07-16conservatively call sfence.vma before every satp load.Robert Morris4-2/+16
2019-07-11cosmetic changesRobert Morris2-14/+22
2019-07-11another test, to help with locking exercisesRobert Morris3-5/+47
2019-07-10nitsRobert Morris3-6/+4
2019-07-10feeble attempt at build instructionsRobert Morris1-7/+5
2019-07-10more comment cleanupRobert Morris1-24/+30
2019-07-10document which proc fields are protected by p->lockRobert Morris1-5/+9
2019-07-10have kill() lock before looking at p->pidRobert Morris3-36/+32
document wait()'s use of np->parent w/o holding lock.
2019-07-10tweak some comments.Robert Morris4-28/+28
2019-07-08Merge branch 'riscv-proc' into riscvFrans Kaashoek17-118/+177
2019-07-08Merge branch 'riscv-proc' of g.csail.mit.edu:xv6-dev into riscv-procRobert Morris1-0/+2
2019-07-08holding p->lock all the way through state=RUNNABLE means we don't need EMBRYORobert Morris2-12/+7
2019-07-08Update runoff list for producing xv6.pdfFrans Kaashoek1-0/+2
2019-07-07eliminate ptable. ptable.lock -> pid_lock.Robert Morris1-15/+14
2019-07-07nitsRobert Morris1-10/+11
2019-07-07avoid a double-lock of initproc->lock if child of init is reparentingRobert Morris1-2/+5
2019-07-07Merge branch 'riscv-proc' of g.csail.mit.edu:xv6-dev into riscv-procRobert Morris1-12/+20
2019-07-07another fork testRobert Morris1-0/+35
2019-07-06Maybe fix two races identified by rtm (thx!):Frans Kaashoek1-12/+20
- during exit(), hold p's parent lock and p's lock across all changes to p and its parent (e.g., reparenting and wakeup1). the lock ordering between concurrent exits of children, parent, and great parent might work out because processes form a tree. - in wakeup1() test and set p->state atomically by asking caller to have p locked. a correctness proof would be desirable.
2019-07-05back-port fork/exit/exit tests to xv6-riscvRobert Morris3-5/+115
2019-07-05two exit/exit testsRobert Morris1-2/+76
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