Commit graph

1269 commits

Author SHA1 Message Date
Frans Kaashoek da51735980 Avoid two cores selecting the same process to run 2019-07-02 13:40:33 -04:00
Robert Morris f59c1bf1d8 try to continue from walk() failing to allocate a page-table page 2019-07-02 11:45:06 -04:00
Robert Morris b27f275014 avoid allocproc() returning a struct proc with non-zero p->sz 2019-07-02 11:17:50 -04:00
Robert Morris 1540c8b15a COW tests 2019-07-02 11:04:35 -04:00
Frans Kaashoek 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.
2019-07-02 09:14:47 -04:00
Robert Morris 40f1041a0a don't enable interrupts until done with sstatus, scause, &c 2019-07-02 05:20:11 -04:00
Robert Morris 535ac52efa oops, don't hold mycpu() result across intr_off() 2019-07-01 17:54:41 -04:00
Robert Morris abfe9999f4 have fork() fail, not panic, if not enough phys mem 2019-07-01 17:46:06 -04:00
Robert Morris 18e76a6c47 sbrk() returns a pointer, so it should be 64 bits 2019-07-01 17:01:50 -04:00
Robert Morris 9b99f00743 oops, don't hold mycpu() result across intr_off() 2019-07-01 14:15:18 -04:00
Robert Morris 0498bfd159 timer interrupt in the kernel -> yield 2019-07-01 13:46:11 -04:00
Frans Kaashoek c34bd3d167 Checkpoint some progress compiling xv6.pdf 2019-07-01 13:02:24 -04:00
Frans Kaashoek 2c0338fe42 x 2019-07-01 08:28:14 -04:00
Frans Kaashoek af6c35e14b Introduce alloc3_desc and UsedArea to make code easier to read 2019-07-01 08:20:35 -04:00
Robert Morris a8305b7318 FD_DEVICE 2019-06-13 10:29:27 -04:00
Robert Morris 46744c4a13 for spinlocks, use gcc intrinsics, but say what they compile to 2019-06-13 10:00:50 -04:00
Robert Morris ca39672a30 clean up virtio code 2019-06-13 09:40:17 -04:00
Robert Morris 4adf016925 eliminate ramdisk 2019-06-13 06:57:38 -04:00
Robert Morris de9d72c908 virtio disk driver 2019-06-13 06:49:02 -04:00
Robert Morris 5753553213 separate source into kernel/ user/ mkfs/ 2019-06-11 09:57:14 -04:00
Robert Morris 91ba81110a gdb backtraces: -ggdb, -fno-omit-frame-pointer, BSIZE=1024 2019-06-06 13:54:03 -04:00
Robert Morris 8607051b5f fix a create()/unlink() deadlock 2019-06-06 10:38:11 -04:00
Robert Morris 31ef85f552 add plic.c 2019-06-06 05:19:59 -04:00
Robert Morris b05bcce939 add kernelvec 2019-06-06 05:19:35 -04:00
Robert Morris dff7ab3f8f make -O work with asm volatile(...) 2019-06-05 15:05:56 -04:00
Robert Morris 5684556c19 clean up -Wall 2019-06-05 14:31:13 -04:00
Robert Morris 5eb1cb4972 push_off() and pop_off() in myproc() 2019-06-05 14:14:57 -04:00
Robert Morris 3113643768 spinlocks using gcc intrinsics
push_off() / pop_off()
set up per-hart plic stuff so all harts get device interrupts
2019-06-05 14:05:46 -04:00
Robert Morris f1a727b971 start at support for multiple CPUs 2019-06-05 11:42:03 -04:00
Robert Morris ec3d3a1fce yield if timer interrupt
all user tests passed
2019-06-04 14:25:48 -04:00
Robert Morris a82772594e timer interrupts -> supervisor software interrupt 2019-06-04 14:20:37 -04:00
Robert Morris cff3ce6e04 more sbrk fixes 2019-06-04 11:31:50 -04:00
Robert Morris 0e131b2263 fix a problem with end. make uartputc() wait until h/w is ready. 2019-06-04 10:43:45 -04:00
Robert Morris b78894f34e check that arguments aren't more than a page in exec() 2019-06-04 06:51:01 -04:00
Robert Morris 0f684b9150 fix exec argc 2019-06-04 06:45:09 -04:00
Robert Morris 8baac76050 support read() and write() bigger than one page 2019-06-04 05:57:47 -04:00
Robert Morris cefe223bf5 console input and sbrk 2019-06-03 17:59:17 -04:00
Robert Morris efecbee7c0 xx 2019-06-03 17:49:27 -04:00
Robert Morris 6eae1be755 push/pop all registers when handling interrupt from kernel 2019-06-03 15:23:12 -04:00
Robert Morris e630e0743b xx 2019-06-03 14:16:51 -04:00
Robert Morris a9c1a6f742 takes one uart input interrupt, then panics 2019-06-03 14:13:07 -04:00
Robert Morris 50cbc75102 first shell prints $ prompt, though no console input yet 2019-06-01 05:33:38 -04:00
Robert Morris 7fd1f1eb0a exec compiles but argstr() doesn't work yet 2019-05-31 12:43:20 -04:00
Robert Morris 5d34fa2a48 -initrd fs.img, ramdisk.c, file system 2019-05-31 11:45:42 -04:00
Robert Morris 2ec1959fd1 fork/wait/exit work 2019-05-31 09:45:59 -04:00
Frans Kaashoek 0f90388c89 No T_SYSCALL 2018-10-10 21:50:58 -04:00
Frans Kaashoek a7ca32e3a3 Change mycpu() to use %gs. 2018-10-09 20:22:48 -04:00
Frans Kaashoek 821ee3fc99 not much 2018-10-09 19:33:06 -04:00
Frans Kaashoek 54e6f829e4 Separate system call path from trap path. Passes usertests on 1 and 2 cpus. 2018-10-09 14:28:54 -04:00
Frans Kaashoek f241e67d91 x 2018-10-07 18:14:53 -04:00