Commit graph

  • dbd729b32d with per-proc locks, we don't need the intr_on() inside the loop. Robert Morris 2019-07-19 10:20:02 -0400
  • 32168df609 no need to save/restore 14 Robert Morris 2019-07-19 09:02:15 -0400
  • 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. Frans Kaashoek 2019-07-19 08:38:51 -0400
  • b924e44f06 Merge branch 'riscv' of g.csail.mit.edu:xv6-dev into riscv Frans Kaashoek 2019-07-17 05:53:47 -0400
  • ce53416f49 Delete x86 comment Frans Kaashoek 2019-07-17 05:53:34 -0400
  • ebc3937209 conservatively call sfence.vma before every satp load. Robert Morris 2019-07-16 17:02:21 -0400
  • 6bbc2b2245 cosmetic changes Robert Morris 2019-07-11 10:38:56 -0400
  • 7797a38423 another test, to help with locking exercises Robert Morris 2019-07-11 05:41:59 -0400
  • 4bc900e78b nits Robert Morris 2019-07-10 14:54:34 -0400
  • e6addf25bb feeble attempt at build instructions Robert Morris 2019-07-10 10:30:33 -0400
  • 061e3be6f8 more comment cleanup Robert Morris 2019-07-10 10:13:08 -0400
  • c0266a877a document which proc fields are protected by p->lock Robert Morris 2019-07-10 09:28:00 -0400
  • 5eb1685700 have kill() lock before looking at p->pid document wait()'s use of np->parent w/o holding lock. Robert Morris 2019-07-10 09:24:50 -0400
  • 9981bb2270 tweak some comments. Robert Morris 2019-07-10 08:57:51 -0400
  • 2f22a3ed6a Merge branch 'riscv-proc' into riscv Frans Kaashoek 2019-07-08 15:50:06 -0400
  • 60ed537427 Merge branch 'riscv-proc' of g.csail.mit.edu:xv6-dev into riscv-proc Robert Morris 2019-07-08 11:11:29 -0400
  • 9d34838b4f holding p->lock all the way through state=RUNNABLE means we don't need EMBRYO Robert Morris 2019-07-08 11:11:00 -0400
  • adcc612901 Update runoff list for producing xv6.pdf Frans Kaashoek 2019-07-08 08:50:55 -0400
  • db72f3108f eliminate ptable. ptable.lock -> pid_lock. Robert Morris 2019-07-07 15:20:13 -0400
  • 4ce3a5fa21 nits Robert Morris 2019-07-07 14:57:16 -0400
  • c4f6a241cd avoid a double-lock of initproc->lock if child of init is reparenting Robert Morris 2019-07-07 07:03:28 -0400
  • 7114bf43ed Merge branch 'riscv-proc' of g.csail.mit.edu:xv6-dev into riscv-proc Robert Morris 2019-07-07 06:39:58 -0400
  • 62313be582 another fork test Robert Morris 2019-07-07 06:39:31 -0400
  • dabbc348bc Maybe fix two races identified by rtm (thx!): Frans Kaashoek 2019-07-06 16:38:41 -0400
  • 75b0c6fc91 back-port fork/exit/exit tests to xv6-riscv Robert Morris 2019-07-05 12:33:26 -0400
  • be88befed7 two exit/exit tests Robert Morris 2019-07-05 11:44:51 -0400
  • fab5e7c1de Make size in stat.h be a uint64 Supporting print long using %l (a bit of cheat) Modify ls to print size using %l We should probably update size in inode too. Frans Kaashoek 2019-07-04 08:54:23 -0400
  • 6bfb078b14 x Frans Kaashoek 2019-07-04 08:54:16 -0400
  • 47e69250d0 Simplify wakeup1 Frans Kaashoek 2019-07-03 15:38:30 -0400
  • cee830af24 Apply some corresponding bug fixes from wq branch here Frans Kaashoek 2019-07-03 15:18:55 -0400
  • ccf299850b Remove some debugging code Frans Kaashoek 2019-07-02 20:52:30 -0400
  • 26f306113a Fix a lost wakeup bug: the disk driver's wakeup() can run after the 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. Frans Kaashoek 2019-07-02 19:29:14 -0400
  • 1e4d7065d6 Merge branch 'riscv' into riscv-proc Frans Kaashoek 2019-07-02 14:19:31 -0400
  • 84c759fc02 x Frans Kaashoek 2019-07-02 14:09:38 -0400
  • 37ac6f8f4f Don't start processes at the end of the proc table Frans Kaashoek 2019-07-02 13:55:52 -0400
  • da51735980 Avoid two cores selecting the same process to run Frans Kaashoek 2019-07-02 13:40:33 -0400
  • f59c1bf1d8 try to continue from walk() failing to allocate a page-table page Robert Morris 2019-07-02 11:45:06 -0400
  • b27f275014 avoid allocproc() returning a struct proc with non-zero p->sz Robert Morris 2019-07-02 11:17:50 -0400
  • 1540c8b15a COW tests Robert Morris 2019-07-02 11:04:35 -0400
  • 67702cf706 Checkpoint switching to per-process locks, in attempt clarify xv6's 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. Frans Kaashoek 2019-07-02 09:14:47 -0400
  • 40f1041a0a don't enable interrupts until done with sstatus, scause, &c Robert Morris 2019-07-02 05:20:11 -0400
  • 535ac52efa oops, don't hold mycpu() result across intr_off() Robert Morris 2019-07-01 14:15:18 -0400
  • abfe9999f4 have fork() fail, not panic, if not enough phys mem Robert Morris 2019-07-01 17:46:06 -0400
  • 18e76a6c47 sbrk() returns a pointer, so it should be 64 bits Robert Morris 2019-07-01 17:01:50 -0400
  • 9b99f00743 oops, don't hold mycpu() result across intr_off() Robert Morris 2019-07-01 14:15:18 -0400
  • 0498bfd159 timer interrupt in the kernel -> yield Robert Morris 2019-07-01 13:46:11 -0400
  • c34bd3d167 Checkpoint some progress compiling xv6.pdf Frans Kaashoek 2019-07-01 13:02:24 -0400
  • 2c0338fe42 x Frans Kaashoek 2019-07-01 08:28:14 -0400
  • af6c35e14b Introduce alloc3_desc and UsedArea to make code easier to read Frans Kaashoek 2019-07-01 08:20:35 -0400
  • a8305b7318 FD_DEVICE Robert Morris 2019-06-13 10:29:27 -0400
  • 46744c4a13 for spinlocks, use gcc intrinsics, but say what they compile to Robert Morris 2019-06-13 10:00:50 -0400
  • ca39672a30 clean up virtio code Robert Morris 2019-06-13 09:40:17 -0400
  • 4adf016925 eliminate ramdisk Robert Morris 2019-06-13 06:57:38 -0400
  • de9d72c908 virtio disk driver Robert Morris 2019-06-13 06:49:02 -0400
  • 5753553213 separate source into kernel/ user/ mkfs/ Robert Morris 2019-06-11 09:57:14 -0400
  • 91ba81110a gdb backtraces: -ggdb, -fno-omit-frame-pointer, BSIZE=1024 Robert Morris 2019-06-06 13:54:03 -0400
  • 8607051b5f fix a create()/unlink() deadlock Robert Morris 2019-06-06 10:38:11 -0400
  • 31ef85f552 add plic.c Robert Morris 2019-06-06 05:19:59 -0400
  • b05bcce939 add kernelvec Robert Morris 2019-06-06 05:19:35 -0400
  • dff7ab3f8f make -O work with asm volatile(...) Robert Morris 2019-06-05 15:05:56 -0400
  • 5684556c19 clean up -Wall Robert Morris 2019-06-05 14:31:13 -0400
  • 5eb1cb4972 push_off() and pop_off() in myproc() Robert Morris 2019-06-05 14:14:57 -0400
  • 3113643768 spinlocks using gcc intrinsics push_off() / pop_off() set up per-hart plic stuff so all harts get device interrupts Robert Morris 2019-06-05 14:05:46 -0400
  • f1a727b971 start at support for multiple CPUs Robert Morris 2019-06-05 11:42:03 -0400
  • ec3d3a1fce yield if timer interrupt all user tests passed Robert Morris 2019-06-04 14:25:48 -0400
  • a82772594e timer interrupts -> supervisor software interrupt Robert Morris 2019-06-04 14:20:37 -0400
  • cff3ce6e04 more sbrk fixes Robert Morris 2019-06-04 11:31:50 -0400
  • 0e131b2263 fix a problem with end. make uartputc() wait until h/w is ready. Robert Morris 2019-06-04 10:43:45 -0400
  • b78894f34e check that arguments aren't more than a page in exec() Robert Morris 2019-06-04 06:51:01 -0400
  • 0f684b9150 fix exec argc Robert Morris 2019-06-04 06:45:09 -0400
  • 8baac76050 support read() and write() bigger than one page Robert Morris 2019-06-04 05:57:47 -0400
  • cefe223bf5 console input and sbrk Robert Morris 2019-06-03 17:59:17 -0400
  • efecbee7c0 xx Robert Morris 2019-06-03 17:49:27 -0400
  • 6eae1be755 push/pop all registers when handling interrupt from kernel Robert Morris 2019-06-03 15:23:12 -0400
  • e630e0743b xx Robert Morris 2019-06-03 14:16:51 -0400
  • a9c1a6f742 takes one uart input interrupt, then panics Robert Morris 2019-06-03 14:13:07 -0400
  • 50cbc75102 first shell prints $ prompt, though no console input yet Robert Morris 2019-06-01 05:33:38 -0400
  • 7fd1f1eb0a exec compiles but argstr() doesn't work yet Robert Morris 2019-05-31 12:43:20 -0400
  • 5d34fa2a48 -initrd fs.img, ramdisk.c, file system Robert Morris 2019-05-31 11:45:42 -0400
  • 2ec1959fd1 fork/wait/exit work Robert Morris 2019-05-31 09:45:59 -0400
  • 0f90388c89 No T_SYSCALL Frans Kaashoek 2018-10-10 21:50:58 -0400
  • a7ca32e3a3 Change mycpu() to use %gs. Frans Kaashoek 2018-10-09 20:22:48 -0400
  • 821ee3fc99 not much Frans Kaashoek 2018-10-09 19:33:06 -0400
  • 54e6f829e4 Separate system call path from trap path. Passes usertests on 1 and 2 cpus. Frans Kaashoek 2018-10-09 14:28:54 -0400
  • f241e67d91 x Frans Kaashoek 2018-10-07 18:14:53 -0400
  • 704775b63d Make names line up with text Frans Kaashoek 2018-10-04 09:21:36 -0400
  • 2fa3a8fd05 Oops, didn't commit these changes with last commit Frans Kaashoek 2018-10-04 09:21:10 -0400
  • a7ef9a40c4 x Frans Kaashoek 2018-10-03 21:00:32 -0400
  • 7ccc5f5f4f Names of text are better. Frans Kaashoek 2018-10-03 20:14:36 -0400
  • eb72653bd7 use x86-64 names Frans Kaashoek 2018-10-03 18:13:51 -0400
  • 23a58370a4 Switch back bpmain back to main Frans Kaashoek 2018-10-03 17:58:21 -0400
  • 020fc6a1c6 don't care about bootloader Frans Kaashoek 2018-10-03 07:53:37 -0400
  • 343080f7ae Remove unused typedefs Frans Kaashoek 2018-10-02 09:06:41 -0400
  • ec110149ed simplify layout pic Frans Kaashoek 2018-10-02 08:50:05 -0400
  • a0389f707f Remove now unused PDX Frans Kaashoek 2018-10-02 08:43:25 -0400
  • d448fd5e6c Simplify by freeing user part of addres pace in one page increments. This undoes commit ffe444 and 052e18, which skipped page directories, but was tailored to two-level page table. Undoing doesn't seem to affect boottime for xv6 visibly. Frans Kaashoek 2018-10-02 08:36:02 -0400
  • a42b7d5dbb Simplify freeing page table Frans Kaashoek 2018-10-02 08:12:01 -0400
  • 155c13b7f8 Avoid repition in walkpgdir Frans Kaashoek 2018-10-02 07:37:49 -0400
  • 572e106e6f x Frans Kaashoek 2018-09-29 09:05:25 -0400
  • 3bfcaeaf01 Make sysexit and trapret paths the same, so that forkret can return through either path. This helped tracking down a bug: use 144 instead of 32 to find cs in trapframe so that gs is correctly saved and restored. Frans Kaashoek 2018-09-29 08:30:50 -0400