Commit graph

81 commits

Author SHA1 Message Date
Robert Morris 6507da772d argptr no longer needed, since copyin checks 2019-07-28 06:29:37 -04:00
Robert Morris 629faafa36 cleaner UART register interface 2019-07-27 06:44:24 -04:00
Robert Morris a33f60fea3 console/uart tweaks 2019-07-27 05:47:19 -04:00
Robert Morris cf48b24c03 beautify console.c 2019-07-27 04:15:06 -04:00
Robert Morris 281d450a08 split printf into a separate file, to make console.c more like a driver 2019-07-27 03:49:03 -04:00
Robert Morris cc1a303d09 fetchint isn't used any more 2019-07-26 12:34:06 -04:00
Robert Morris f0987d82dc ??? 2019-07-26 11:09:54 -04:00
Robert Morris c714e3e35c machinevec -> timervec 2019-07-26 10:17:02 -04:00
Robert Morris fa2e2e3c81 uservec before userret in trampoline, to match book and kernelvec 2019-07-26 09:38:22 -04:00
Robert Morris 8d30e21b59 Merge branch 'riscv' of g.csail.mit.edu:xv6-dev into riscv 2019-07-26 04:53:59 -04:00
Robert Morris ea95a6654c trampin -> uservec
trampout -> userret
2019-07-26 04:53:46 -04:00
Frans Kaashoek 47c9721d78 a few name changes in panic msg 2019-07-25 06:59:07 -04:00
Robert Morris 4e62de64cd fix an exit/exit deadlock -> one more locking protocol violation
increase timer rate from 1/second to 10/second
2019-07-25 06:30:49 -04:00
Robert Morris b19adf79f9 purge x86 stuff from defs.h 2019-07-25 05:37:35 -04:00
Robert Morris 5d5e4e065f comments for timer setup 2019-07-25 05:35:03 -04:00
Robert Morris 9a817bd134 rationalize some vm function names 2019-07-24 15:28:37 -04:00
Robert Morris da898a11b6 ??? 2019-07-24 14:40:13 -04:00
Robert Morris a77287e924 no more PAGEBREAK 2019-07-24 13:33:43 -04:00
Robert Morris b4f89bb529 ping-pong exercise 2019-07-24 10:39:05 -04:00
Robert Morris 8f6865d1f1 display assembly instructions, to help with first.tex exercise 2019-07-24 10:15:45 -04:00
Robert Morris 936afc6e1a mstart -> start 2019-07-23 14:31:12 -04:00
Robert Morris 54178ad94d simplify kernel mapping calls 2019-07-23 12:17:17 -04:00
Robert Morris 55bc96d419 a few core -> CPU
get rid of PDF generating support
2019-07-23 11:14:10 -04:00
Frans Kaashoek b8a31c494c one more TRAMPOLINE 2019-07-23 07:30:23 -04:00
Frans Kaashoek 6c78af4a57 fix mapkstack 2019-07-22 20:58:15 -04:00
Frans Kaashoek b2e9c8eea5 Clear U bit for second stack page so that it functions as a guard page 2019-07-22 15:38:08 -04:00
Robert Morris 38b430687c nit 2019-07-22 15:04:07 -04:00
Robert Morris 6b379e4707 -MD and TRAPFRAME 2019-07-22 14:54:40 -04:00
Frans Kaashoek 5eab649255 Allocate 2 pages per proc, with the top one unmapped.
The page below the last proc is unmapped by default (because the
kernel doesn't map anything right below the kernel stacks).
2019-07-22 14:30:45 -04:00
Frans Kaashoek c5d48db045 Merge branch 'riscv-kstack' into riscv 2019-07-22 13:32:33 -04:00
Robert Morris 328204d9cc not much 2019-07-20 18:51:31 -04:00
Robert Morris 06e49a58dc pi for pipe, rather than p, to avoid confusion with proc's p->lock 2019-07-20 17:07:20 -04:00
Robert Morris 3333665ab6 not much 2019-07-20 10:17:26 -04:00
Robert Morris 2418ac380c it's not clear that the release will always enable interrupts 2019-07-19 13:27:48 -04:00
Frans Kaashoek 06109901c9 x 2019-07-19 11:27:02 -04:00
Robert Morris dbd729b32d with per-proc locks, we don't need the intr_on() inside the loop. 2019-07-19 10:20:02 -04:00
Robert Morris 32168df609 no need to save/restore 14 2019-07-19 09:02:15 -04:00
Frans Kaashoek 9156632701 One way of supporting a guard page below kstack: allocate kstacks in
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-19 08:38:51 -04:00
Frans Kaashoek b924e44f06 Merge branch 'riscv' of g.csail.mit.edu:xv6-dev into riscv 2019-07-17 05:53:47 -04:00
Frans Kaashoek ce53416f49 Delete x86 comment 2019-07-17 05:53:34 -04:00
Robert Morris ebc3937209 conservatively call sfence.vma before every satp load. 2019-07-16 17:02:21 -04:00
Robert Morris 6bbc2b2245 cosmetic changes 2019-07-11 10:38:56 -04:00
Robert Morris 7797a38423 another test, to help with locking exercises 2019-07-11 05:41:59 -04:00
Robert Morris 4bc900e78b nits 2019-07-10 14:54:34 -04:00
Robert Morris 061e3be6f8 more comment cleanup 2019-07-10 10:13:08 -04:00
Robert Morris c0266a877a document which proc fields are protected by p->lock 2019-07-10 09:28:00 -04:00
Robert Morris 5eb1685700 have kill() lock before looking at p->pid
document wait()'s use of np->parent w/o holding lock.
2019-07-10 09:24:50 -04:00
Robert Morris 9981bb2270 tweak some comments. 2019-07-10 08:57:51 -04:00
Robert Morris 9d34838b4f holding p->lock all the way through state=RUNNABLE means we don't need EMBRYO 2019-07-08 11:11:00 -04:00
Robert Morris db72f3108f eliminate ptable. ptable.lock -> pid_lock. 2019-07-07 15:20:13 -04:00