dbd729b32dwith per-proc locks, we don't need the intr_on() inside the loop.
Robert Morris
2019-07-19 10:20:02 -0400
32168df609no need to save/restore 14
Robert Morris
2019-07-19 09:02:15 -0400
9156632701One 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
b924e44f06Merge branch 'riscv' of g.csail.mit.edu:xv6-dev into riscv
Frans Kaashoek
2019-07-17 05:53:47 -0400
ce53416f49Delete x86 comment
Frans Kaashoek
2019-07-17 05:53:34 -0400
ebc3937209conservatively call sfence.vma before every satp load.
Robert Morris
2019-07-16 17:02:21 -0400
6bbc2b2245cosmetic changes
Robert Morris
2019-07-11 10:38:56 -0400
7797a38423another test, to help with locking exercises
Robert Morris
2019-07-11 05:41:59 -0400
4bc900e78bnits
Robert Morris
2019-07-10 14:54:34 -0400
e6addf25bbfeeble attempt at build instructions
Robert Morris
2019-07-10 10:30:33 -0400
061e3be6f8more comment cleanup
Robert Morris
2019-07-10 10:13:08 -0400
c0266a877adocument which proc fields are protected by p->lock
Robert Morris
2019-07-10 09:28:00 -0400
5eb1685700have 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
9981bb2270tweak some comments.
Robert Morris
2019-07-10 08:57:51 -0400
2f22a3ed6aMerge branch 'riscv-proc' into riscv
Frans Kaashoek
2019-07-08 15:50:06 -0400
60ed537427Merge branch 'riscv-proc' of g.csail.mit.edu:xv6-dev into riscv-proc
Robert Morris
2019-07-08 11:11:29 -0400
9d34838b4fholding p->lock all the way through state=RUNNABLE means we don't need EMBRYO
Robert Morris
2019-07-08 11:11:00 -0400
adcc612901Update runoff list for producing xv6.pdf
Frans Kaashoek
2019-07-08 08:50:55 -0400
db72f3108feliminate ptable. ptable.lock -> pid_lock.
Robert Morris
2019-07-07 15:20:13 -0400
4ce3a5fa21nits
Robert Morris
2019-07-07 14:57:16 -0400
c4f6a241cdavoid a double-lock of initproc->lock if child of init is reparenting
Robert Morris
2019-07-07 07:03:28 -0400
7114bf43edMerge branch 'riscv-proc' of g.csail.mit.edu:xv6-dev into riscv-proc
Robert Morris
2019-07-07 06:39:58 -0400
62313be582another fork test
Robert Morris
2019-07-07 06:39:31 -0400
dabbc348bcMaybe fix two races identified by rtm (thx!):
Frans Kaashoek
2019-07-06 16:38:41 -0400
75b0c6fc91back-port fork/exit/exit tests to xv6-riscv
Robert Morris
2019-07-05 12:33:26 -0400
be88befed7two exit/exit tests
Robert Morris
2019-07-05 11:44:51 -0400
fab5e7c1deMake 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
6bfb078b14x
Frans Kaashoek
2019-07-04 08:54:16 -0400
47e69250d0Simplify wakeup1
Frans Kaashoek
2019-07-03 15:38:30 -0400
cee830af24Apply some corresponding bug fixes from wq branch here
Frans Kaashoek
2019-07-03 15:18:55 -0400
ccf299850bRemove some debugging code
Frans Kaashoek
2019-07-02 20:52:30 -0400
26f306113aFix 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
1e4d7065d6Merge branch 'riscv' into riscv-proc
Frans Kaashoek
2019-07-02 14:19:31 -0400
84c759fc02x
Frans Kaashoek
2019-07-02 14:09:38 -0400
37ac6f8f4fDon't start processes at the end of the proc table
Frans Kaashoek
2019-07-02 13:55:52 -0400
da51735980Avoid two cores selecting the same process to run
Frans Kaashoek
2019-07-02 13:40:33 -0400
f59c1bf1d8try to continue from walk() failing to allocate a page-table page
Robert Morris
2019-07-02 11:45:06 -0400
b27f275014avoid allocproc() returning a struct proc with non-zero p->sz
Robert Morris
2019-07-02 11:17:50 -0400
1540c8b15aCOW tests
Robert Morris
2019-07-02 11:04:35 -0400
67702cf706Checkpoint 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
40f1041a0adon't enable interrupts until done with sstatus, scause, &c
Robert Morris
2019-07-02 05:20:11 -0400
535ac52efaoops, don't hold mycpu() result across intr_off()
Robert Morris
2019-07-01 14:15:18 -0400
abfe9999f4have fork() fail, not panic, if not enough phys mem
Robert Morris
2019-07-01 17:46:06 -0400
18e76a6c47sbrk() returns a pointer, so it should be 64 bits
Robert Morris
2019-07-01 17:01:50 -0400
9b99f00743oops, don't hold mycpu() result across intr_off()
Robert Morris
2019-07-01 14:15:18 -0400
0498bfd159timer interrupt in the kernel -> yield
Robert Morris
2019-07-01 13:46:11 -0400
c34bd3d167Checkpoint some progress compiling xv6.pdf
Frans Kaashoek
2019-07-01 13:02:24 -0400
2c0338fe42x
Frans Kaashoek
2019-07-01 08:28:14 -0400
af6c35e14bIntroduce alloc3_desc and UsedArea to make code easier to read
Frans Kaashoek
2019-07-01 08:20:35 -0400
a8305b7318FD_DEVICE
Robert Morris
2019-06-13 10:29:27 -0400
46744c4a13for spinlocks, use gcc intrinsics, but say what they compile to
Robert Morris
2019-06-13 10:00:50 -0400
ca39672a30clean up virtio code
Robert Morris
2019-06-13 09:40:17 -0400
4adf016925eliminate ramdisk
Robert Morris
2019-06-13 06:57:38 -0400
de9d72c908virtio disk driver
Robert Morris
2019-06-13 06:49:02 -0400
5753553213separate source into kernel/ user/ mkfs/
Robert Morris
2019-06-11 09:57:14 -0400
91ba81110agdb backtraces: -ggdb, -fno-omit-frame-pointer, BSIZE=1024
Robert Morris
2019-06-06 13:54:03 -0400
8607051b5ffix a create()/unlink() deadlock
Robert Morris
2019-06-06 10:38:11 -0400
31ef85f552add plic.c
Robert Morris
2019-06-06 05:19:59 -0400
b05bcce939add kernelvec
Robert Morris
2019-06-06 05:19:35 -0400
dff7ab3f8fmake -O work with asm volatile(...)
Robert Morris
2019-06-05 15:05:56 -0400
5684556c19clean up -Wall
Robert Morris
2019-06-05 14:31:13 -0400
5eb1cb4972push_off() and pop_off() in myproc()
Robert Morris
2019-06-05 14:14:57 -0400
3113643768spinlocks 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
f1a727b971start at support for multiple CPUs
Robert Morris
2019-06-05 11:42:03 -0400
ec3d3a1fceyield if timer interrupt all user tests passed
Robert Morris
2019-06-04 14:25:48 -0400
cff3ce6e04more sbrk fixes
Robert Morris
2019-06-04 11:31:50 -0400
0e131b2263fix a problem with end. make uartputc() wait until h/w is ready.
Robert Morris
2019-06-04 10:43:45 -0400
b78894f34echeck that arguments aren't more than a page in exec()
Robert Morris
2019-06-04 06:51:01 -0400
0f684b9150fix exec argc
Robert Morris
2019-06-04 06:45:09 -0400
8baac76050support read() and write() bigger than one page
Robert Morris
2019-06-04 05:57:47 -0400
cefe223bf5console input and sbrk
Robert Morris
2019-06-03 17:59:17 -0400
efecbee7c0xx
Robert Morris
2019-06-03 17:49:27 -0400
6eae1be755push/pop all registers when handling interrupt from kernel
Robert Morris
2019-06-03 15:23:12 -0400
e630e0743bxx
Robert Morris
2019-06-03 14:16:51 -0400
a9c1a6f742takes one uart input interrupt, then panics
Robert Morris
2019-06-03 14:13:07 -0400
50cbc75102first shell prints $ prompt, though no console input yet
Robert Morris
2019-06-01 05:33:38 -0400
7fd1f1eb0aexec 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
2ec1959fd1fork/wait/exit work
Robert Morris
2019-05-31 09:45:59 -0400
0f90388c89No T_SYSCALL
Frans Kaashoek
2018-10-10 21:50:58 -0400
a7ca32e3a3Change mycpu() to use %gs.
Frans Kaashoek
2018-10-09 20:22:48 -0400
821ee3fc99not much
Frans Kaashoek
2018-10-09 19:33:06 -0400
54e6f829e4Separate system call path from trap path. Passes usertests on 1 and 2 cpus.
Frans Kaashoek
2018-10-09 14:28:54 -0400
f241e67d91x
Frans Kaashoek
2018-10-07 18:14:53 -0400
704775b63dMake names line up with text
Frans Kaashoek
2018-10-04 09:21:36 -0400
2fa3a8fd05Oops, didn't commit these changes with last commit
Frans Kaashoek
2018-10-04 09:21:10 -0400
a7ef9a40c4x
Frans Kaashoek
2018-10-03 21:00:32 -0400
7ccc5f5f4fNames of text are better.
Frans Kaashoek
2018-10-03 20:14:36 -0400
eb72653bd7use x86-64 names
Frans Kaashoek
2018-10-03 18:13:51 -0400
23a58370a4Switch back bpmain back to main
Frans Kaashoek
2018-10-03 17:58:21 -0400
020fc6a1c6don't care about bootloader
Frans Kaashoek
2018-10-03 07:53:37 -0400
343080f7aeRemove unused typedefs
Frans Kaashoek
2018-10-02 09:06:41 -0400
ec110149edsimplify layout pic
Frans Kaashoek
2018-10-02 08:50:05 -0400
a0389f707fRemove now unused PDX
Frans Kaashoek
2018-10-02 08:43:25 -0400
d448fd5e6cSimplify 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
a42b7d5dbbSimplify freeing page table
Frans Kaashoek
2018-10-02 08:12:01 -0400
155c13b7f8Avoid repition in walkpgdir
Frans Kaashoek
2018-10-02 07:37:49 -0400
572e106e6fx
Frans Kaashoek
2018-09-29 09:05:25 -0400
3bfcaeaf01Make 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