Commit graph

1298 commits

Author SHA1 Message Date
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 0358ee912b syscall lab/alarm 2019-07-25 09:42:36 -04:00
Frans Kaashoek 57a861bea1 Checkpoint start syscall lab 2019-07-25 08:19:14 -04:00
Frans Kaashoek 808811f9f4 Add syscall tracing to the first xv6 lab 2019-07-25 07:47:22 -04:00
Frans Kaashoek c0b1c239ea x 2019-07-25 07:07:03 -04:00
Frans Kaashoek 47c9721d78 a few name changes in panic msg 2019-07-25 06:59:07 -04:00
Frans Kaashoek 8c12928cc5 First draft of first lab assignment? 2019-07-25 06:50:12 -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
Frans Kaashoek aef3e0f5a4 sieve exercise 2019-07-24 20:30:20 -04:00
Frans Kaashoek 61dc67b5d2 Simple find assignment 2019-07-24 18:00:32 -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
Frans Kaashoek 5d75346e4a find 2019-07-24 14:26:16 -04:00
Frans Kaashoek 711bd3156d Checkpoint some warm-up exercises 2019-07-24 14:20:33 -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
Frans Kaashoek 49db5119e9 x 2019-07-24 09:06:49 -04:00
Frans Kaashoek 26ce97fc76 One more 2019-07-24 09:06:30 -04:00
Frans Kaashoek e627608810 Delete a few other no-longer relevant files 2019-07-24 09:05:05 -04:00
Frans Kaashoek 6f3a441c10 Remove a few no longer relevant files 2019-07-24 08:59:47 -04:00
Frans Kaashoek dfc2cf9123 add rtm's cow lab 2019-07-24 08:55:41 -04:00
Frans Kaashoek a41365faa3 Add relevant docs to repo 2019-07-24 08:38:41 -04:00
Frans Kaashoek 0387e2156f Add a few sbrktest for lazy allocatioin lab 2019-07-24 08:37:43 -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 62091abae9 Test whether writing below stack fails 2019-07-22 18:08:52 -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