Robert Morris
38084bcea8
proc_tree_lock -> wait_lock
2020-11-05 19:50:46 -05:00
Robert Morris
ba8d9f4808
don't over-lock in exit()
2020-11-05 19:50:46 -05:00
Robert Morris
47323c97cf
oops
2020-11-05 06:56:51 -05:00
Robert Morris
2875069973
Frans' proc_lock.
2020-11-05 06:56:51 -05:00
Robert Morris
b48ea5d220
free proc if kalloc fails
2020-11-05 06:56:51 -05:00
Frans Kaashoek
d4cecb269f
kvmmake() makes a complete kernel page table, matching Figure 3.3
2020-10-14 20:28:16 -04:00
Robert Morris
8dc71a257d
handle another out-of-memory in fork(). the policy here is not consistent,
...
since other calls (e.g. exec()) panic on out of memory.
2020-08-17 08:18:23 -04:00
Robert Morris
bc51626aab
try to handle a few of the possible out-of-memory errors in fork()
2020-08-17 08:18:23 -04:00
Robert Morris
a8dd44cf59
modify uvmunmap() to be in aligned pages
...
fix a bug in fork() recovering from out of memory
2020-08-17 08:18:23 -04:00
Frans Kaashoek
0502342335
Merge pull request #9 from d0iasm/riscv
...
update initcode to avoid using the compressed extension
2020-08-10 13:54:58 -04:00
Robert Morris
7f35d7a14e
modify each page in usertests countfree()
...
get rid of static for walk() and freewalk()
2020-08-10 11:19:10 -04:00
Robert Morris
1e72d5ca08
cpu->scheduler -> cpu->context to reduce confusion
2020-08-10 11:19:10 -04:00
Robert Morris
5494c91705
rename p->tf to p->trapframe, for consistency with p->context
2020-08-10 11:19:10 -04:00
Asami Doi
8b052656a0
update initcode to avoid using the compressed extension
2020-03-20 12:33:32 +09:00
Robert Morris
e7ffb74ad1
fix a potential memory leak
2019-10-27 13:36:46 -04:00
Robert Morris
2821d43cc9
nits
2019-10-16 12:27:08 -04:00
Robert Morris
37df68e5de
story is more complex than I thought.
2019-09-23 07:24:41 -04:00
Robert Morris
d175beadf5
bug fix: reparent() sometimes deadlocked
...
bug fix: exit() sometimes released a different parent lock than it acquired
usertests
2019-09-23 06:50:25 -04:00
Robert Morris
4de161f973
don't panic if a program frees all its memory with sbrk().
...
if a program sbrk()'s to a non-page-boundary, don't free that page.
corresponding usertests.
2019-09-20 11:35:27 -04:00
Frans Kaashoek
7e6c37e67e
Support exit status for exit/wait
...
One test case for returning a exit status
Passes usertests, but haven't used it to simplify tests
2019-09-10 12:30:10 -04:00
Frans Kaashoek
21ad8c76bc
A few now unused DOC
2019-08-19 18:12:19 -04:00
Frans Kaashoek
2501560cd6
Cosmetic cleanup: fsinit reads sb and calls loginit. initialize icache
...
in main.c and don't make it disk specific; the icache is shared. This
doesn't matter since we have only one disk, but conceptually cleaner
and maybe helpful to students for mount lab.
2019-08-18 14:35:11 -04:00
Robert Morris
cf48b24c03
beautify console.c
2019-07-27 04:15:06 -04:00
Robert Morris
ea95a6654c
trampin -> uservec
...
trampout -> userret
2019-07-26 04:53:46 -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
9a817bd134
rationalize some vm function names
2019-07-24 15:28:37 -04:00
Robert Morris
a77287e924
no more PAGEBREAK
2019-07-24 13:33:43 -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
6c78af4a57
fix mapkstack
2019-07-22 20:58:15 -04:00
Robert Morris
6b379e4707
-MD and TRAPFRAME
2019-07-22 14:54:40 -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
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
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
Robert Morris
ebc3937209
conservatively call sfence.vma before every satp load.
2019-07-16 17:02:21 -04:00
Robert Morris
4bc900e78b
nits
2019-07-10 14:54:34 -04:00
Robert Morris
061e3be6f8
more comment cleanup
2019-07-10 10:13:08 -04:00
Robert Morris
5eb1685700
have kill() lock before looking at p->pid
...
document wait()'s use of np->parent w/o holding lock.
2019-07-10 09:24:50 -04:00
Robert Morris
9981bb2270
tweak some comments.
2019-07-10 08:57:51 -04:00
Robert Morris
9d34838b4f
holding p->lock all the way through state=RUNNABLE means we don't need EMBRYO
2019-07-08 11:11:00 -04:00
Robert Morris
db72f3108f
eliminate ptable. ptable.lock -> pid_lock.
2019-07-07 15:20:13 -04:00
Robert Morris
4ce3a5fa21
nits
2019-07-07 14:57:16 -04:00
Robert Morris
c4f6a241cd
avoid a double-lock of initproc->lock if child of init is reparenting
2019-07-07 07:03:28 -04:00
Frans Kaashoek
dabbc348bc
Maybe fix two races identified by rtm (thx!):
...
- during exit(), hold p's parent lock and p's lock across all changes
to p and its parent (e.g., reparenting and wakeup1). the lock
ordering between concurrent exits of children, parent, and great
parent might work out because processes form a tree.
- in wakeup1() test and set p->state atomically by asking caller to
have p locked.
a correctness proof would be desirable.
2019-07-06 16:38:41 -04:00
Frans Kaashoek
6bfb078b14
x
2019-07-04 08:54:16 -04:00
Frans Kaashoek
47e69250d0
Simplify wakeup1
2019-07-03 15:38:30 -04:00