Commit Graph

  • 62313be582 another fork test Robert Morris 2019-07-07 06:39:31 -04:00
  • dabbc348bc Maybe fix two races identified by rtm (thx!): Frans Kaashoek 2019-07-06 16:38:41 -04:00
  • 75b0c6fc91 back-port fork/exit/exit tests to xv6-riscv Robert Morris 2019-07-05 12:33:26 -04:00
  • be88befed7 two exit/exit tests Robert Morris 2019-07-05 11:44:51 -04:00
  • 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 -04:00
  • 6bfb078b14 x Frans Kaashoek 2019-07-04 08:54:16 -04:00
  • 47e69250d0 Simplify wakeup1 Frans Kaashoek 2019-07-03 15:38:30 -04:00
  • cee830af24 Apply some corresponding bug fixes from wq branch here Frans Kaashoek 2019-07-03 15:18:55 -04:00
  • ccf299850b Remove some debugging code Frans Kaashoek 2019-07-02 20:52:30 -04:00
  • 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 -04:00
  • 1e4d7065d6 Merge branch 'riscv' into riscv-proc Frans Kaashoek 2019-07-02 14:19:31 -04:00
  • 84c759fc02 x Frans Kaashoek 2019-07-02 14:09:38 -04:00
  • 37ac6f8f4f Don't start processes at the end of the proc table Frans Kaashoek 2019-07-02 13:55:52 -04:00
  • da51735980 Avoid two cores selecting the same process to run Frans Kaashoek 2019-07-02 13:40:33 -04:00
  • f59c1bf1d8 try to continue from walk() failing to allocate a page-table page Robert Morris 2019-07-02 11:45:06 -04:00
  • b27f275014 avoid allocproc() returning a struct proc with non-zero p->sz Robert Morris 2019-07-02 11:17:50 -04:00
  • 1540c8b15a COW tests Robert Morris 2019-07-02 11:04:35 -04:00
  • 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 -04:00
  • 40f1041a0a don't enable interrupts until done with sstatus, scause, &c Robert Morris 2019-07-02 05:20:11 -04:00
  • 535ac52efa oops, don't hold mycpu() result across intr_off() Robert Morris 2019-07-01 14:15:18 -04:00
  • abfe9999f4 have fork() fail, not panic, if not enough phys mem Robert Morris 2019-07-01 17:46:06 -04:00
  • 18e76a6c47 sbrk() returns a pointer, so it should be 64 bits Robert Morris 2019-07-01 17:01:50 -04:00
  • 9b99f00743 oops, don't hold mycpu() result across intr_off() Robert Morris 2019-07-01 14:15:18 -04:00
  • 0498bfd159 timer interrupt in the kernel -> yield Robert Morris 2019-07-01 13:46:11 -04:00
  • c34bd3d167 Checkpoint some progress compiling xv6.pdf Frans Kaashoek 2019-07-01 13:02:24 -04:00
  • 2c0338fe42 x Frans Kaashoek 2019-07-01 08:28:14 -04:00
  • af6c35e14b Introduce alloc3_desc and UsedArea to make code easier to read Frans Kaashoek 2019-07-01 08:20:35 -04:00
  • a8305b7318 FD_DEVICE Robert Morris 2019-06-13 10:29:27 -04:00
  • 46744c4a13 for spinlocks, use gcc intrinsics, but say what they compile to Robert Morris 2019-06-13 10:00:50 -04:00
  • ca39672a30 clean up virtio code Robert Morris 2019-06-13 09:40:17 -04:00
  • 4adf016925 eliminate ramdisk Robert Morris 2019-06-13 06:57:38 -04:00
  • de9d72c908 virtio disk driver Robert Morris 2019-06-13 06:49:02 -04:00
  • 5753553213 separate source into kernel/ user/ mkfs/ Robert Morris 2019-06-11 09:57:14 -04:00
  • 91ba81110a gdb backtraces: -ggdb, -fno-omit-frame-pointer, BSIZE=1024 Robert Morris 2019-06-06 13:54:03 -04:00
  • 8607051b5f fix a create()/unlink() deadlock Robert Morris 2019-06-06 10:38:11 -04:00
  • 31ef85f552 add plic.c Robert Morris 2019-06-06 05:19:59 -04:00
  • b05bcce939 add kernelvec Robert Morris 2019-06-06 05:19:35 -04:00
  • dff7ab3f8f make -O work with asm volatile(...) Robert Morris 2019-06-05 15:05:56 -04:00
  • 5684556c19 clean up -Wall Robert Morris 2019-06-05 14:31:13 -04:00
  • 5eb1cb4972 push_off() and pop_off() in myproc() Robert Morris 2019-06-05 14:14:57 -04:00
  • 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 -04:00
  • f1a727b971 start at support for multiple CPUs Robert Morris 2019-06-05 11:42:03 -04:00
  • ec3d3a1fce yield if timer interrupt all user tests passed Robert Morris 2019-06-04 14:25:48 -04:00
  • a82772594e timer interrupts -> supervisor software interrupt Robert Morris 2019-06-04 14:20:37 -04:00
  • cff3ce6e04 more sbrk fixes Robert Morris 2019-06-04 11:31:50 -04:00
  • 0e131b2263 fix a problem with end. make uartputc() wait until h/w is ready. Robert Morris 2019-06-04 10:43:45 -04:00
  • b78894f34e check that arguments aren't more than a page in exec() Robert Morris 2019-06-04 06:51:01 -04:00
  • 0f684b9150 fix exec argc Robert Morris 2019-06-04 06:45:09 -04:00
  • 8baac76050 support read() and write() bigger than one page Robert Morris 2019-06-04 05:57:47 -04:00
  • cefe223bf5 console input and sbrk Robert Morris 2019-06-03 17:59:17 -04:00
  • efecbee7c0 xx Robert Morris 2019-06-03 17:49:27 -04:00
  • 6eae1be755 push/pop all registers when handling interrupt from kernel Robert Morris 2019-06-03 15:23:12 -04:00
  • e630e0743b xx Robert Morris 2019-06-03 14:16:51 -04:00
  • a9c1a6f742 takes one uart input interrupt, then panics Robert Morris 2019-06-03 14:13:07 -04:00
  • 50cbc75102 first shell prints $ prompt, though no console input yet Robert Morris 2019-06-01 05:33:38 -04:00
  • 7fd1f1eb0a exec compiles but argstr() doesn't work yet Robert Morris 2019-05-31 12:43:20 -04:00
  • 5d34fa2a48 -initrd fs.img, ramdisk.c, file system Robert Morris 2019-05-31 11:45:42 -04:00
  • 2ec1959fd1 fork/wait/exit work Robert Morris 2019-05-31 09:45:59 -04:00
  • 0f90388c89 No T_SYSCALL Frans Kaashoek 2018-10-10 21:50:58 -04:00
  • a7ca32e3a3 Change mycpu() to use %gs. Frans Kaashoek 2018-10-09 20:22:48 -04:00
  • 821ee3fc99 not much Frans Kaashoek 2018-10-09 19:33:06 -04:00
  • 54e6f829e4 Separate system call path from trap path. Passes usertests on 1 and 2 cpus. Frans Kaashoek 2018-10-09 14:28:54 -04:00
  • f241e67d91 x Frans Kaashoek 2018-10-07 18:14:53 -04:00
  • 704775b63d Make names line up with text Frans Kaashoek 2018-10-04 09:21:36 -04:00
  • 2fa3a8fd05 Oops, didn't commit these changes with last commit Frans Kaashoek 2018-10-04 09:21:10 -04:00
  • a7ef9a40c4 x Frans Kaashoek 2018-10-03 21:00:32 -04:00
  • 7ccc5f5f4f Names of text are better. Frans Kaashoek 2018-10-03 20:14:36 -04:00
  • eb72653bd7 use x86-64 names Frans Kaashoek 2018-10-03 18:13:51 -04:00
  • 23a58370a4 Switch back bpmain back to main Frans Kaashoek 2018-10-03 17:58:21 -04:00
  • 020fc6a1c6 don't care about bootloader Frans Kaashoek 2018-10-03 07:53:37 -04:00
  • 343080f7ae Remove unused typedefs Frans Kaashoek 2018-10-02 09:06:41 -04:00
  • ec110149ed simplify layout pic Frans Kaashoek 2018-10-02 08:50:05 -04:00
  • a0389f707f Remove now unused PDX Frans Kaashoek 2018-10-02 08:43:25 -04:00
  • 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 -04:00
  • a42b7d5dbb Simplify freeing page table Frans Kaashoek 2018-10-02 08:12:01 -04:00
  • 155c13b7f8 Avoid repition in walkpgdir Frans Kaashoek 2018-10-02 07:37:49 -04:00
  • 572e106e6f x Frans Kaashoek 2018-09-29 09:05:25 -04:00
  • 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 -04:00
  • 322990649b x Frans Kaashoek 2018-09-29 08:29:34 -04:00
  • ab0db651af Checkpoint port of xv6 to x86-64. Passed usertests on 2 processors a few times. Frans Kaashoek 2018-09-23 08:24:42 -04:00
  • b818915f79 Update name Use generic 6.828 url (without year) Frans Kaashoek 2018-09-02 08:33:55 -04:00
  • 308a3b88c9 thanks tyfkda Frans Kaashoek 2018-08-31 09:21:19 -04:00
  • 343255189e thanks Wolfgang Keller Frans Kaashoek 2018-08-31 08:41:23 -04:00
  • 80f70c46df x Frans Kaashoek 2018-08-30 16:20:16 -04:00
  • 1d19081efb Allow holding to be called with interrupts enabled (for Mark Morrissey). Frans Kaashoek 2018-08-30 16:14:34 -04:00
  • 2c73068e82 Delete a patch Adjust typesetting of code Frans Kaashoek 2018-08-30 15:45:16 -04:00
  • e559fd2c5a x Frans Kaashoek 2018-08-30 14:47:07 -04:00
  • f30488793b x Frans Kaashoek 2018-08-30 14:16:29 -04:00
  • 76d4005f9e thanks mtasm Frans Kaashoek 2018-08-30 14:09:03 -04:00
  • 6710e5589d thanks wxdao Frans Kaashoek 2018-08-30 13:48:47 -04:00
  • 96e4e2f4d1 thanks eyalz800 Frans Kaashoek 2018-08-30 13:46:48 -04:00
  • 8f63beaacb vectors.pl is executable and asks shell for perl Frans Kaashoek 2018-08-30 13:36:07 -04:00
  • 171c2cc6b8 thanks mataness Frans Kaashoek 2018-08-30 13:30:50 -04:00
  • 26108a3b99 thanks tyfkda Frans Kaashoek 2018-08-30 13:27:57 -04:00
  • 7f3528bcb3 x Frans Kaashoek 2018-08-30 13:25:54 -04:00
  • 210a0f0b30 Remove unused flags (thanks Wolfgang Keller) Frans Kaashoek 2018-08-30 13:14:01 -04:00
  • b2ca8e3e23 x Frans Kaashoek 2018-08-30 13:09:03 -04:00
  • 960a94fb87 x Frans Kaashoek 2018-08-30 12:12:16 -04:00
  • 0b86d03767 Because sleeplocks replaced B_BUSY the holding test can be more specific (thanks Mark Morrissey) Frans Kaashoek 2018-08-30 11:57:46 -04:00
  • 0b6f4c08b9 x Frans Kaashoek 2018-08-30 11:42:10 -04:00