Commit graph

75 commits

Author SHA1 Message Date
Robert Morris
4a88273db5 oops. scheduler() inherits the interrupt status of the
most recent process to run, so it must explicitly
turn them on again. It would be better if cpu->intena
were really thread->intena.
2022-10-17 04:07:24 -04:00
Robert Morris
f376ad7f1f scheduler()'s intr_on() is in the wrong place, reflecting
the locking scheme from long ago.
2022-10-16 15:28:21 -04:00
Robert Morris
348cf7fee4 forkret first memory model 2022-10-12 13:07:55 -04:00
Frans Kaashoek
ccb7bd14c7 Merge branch 'riscv' into uvm-perm 2022-08-23 11:01:06 -04:00
Frans Kaashoek
cd6207a972 Merge branch 'riscv-killed' into riscv 2022-08-23 07:31:08 -04:00
Frans Kaashoek
2f0b4d698b Use pp instead of np to be more consistent 2022-08-22 19:58:33 -04:00
Frans Kaashoek
1d4c437ea1 Use uint64 (thanks carlclone and Harry Porter) 2022-08-17 20:37:22 -04:00
Frans Kaashoek
899cc02660 Experiment with being more precise setting permissions for user pages.
Growing adds R|W pages (without X).  Exec() marks the stack only R|W.

Probably could setup permissions for text and data better if we call
ld with --no-omagic instead of -N.
2022-08-12 13:22:10 -04:00
Frans Kaashoek
62bc610424 cosmetic changes (thanks Harry Porter) 2022-08-12 11:47:39 -04:00
Frans Kaashoek
48d1a7ffa5 Add USED to states (thanks Harry Porter) 2022-08-12 09:14:54 -04:00
Frans Kaashoek
4f716c8550 Use p->lock to read p->killed 2022-08-11 14:22:00 -04:00
Frans Kaashoek
429c7b717e Use atomic store_n and load_n 2022-08-11 08:42:52 -04:00
Frans Kaashoek
975f3b31d3 Clean up using killed() 2022-08-11 07:23:17 -04:00
Frans Kaashoek
4087a6e7fc Read and write p->killed using atomics 2022-08-10 20:35:42 -04:00
Robert Morris
7d8bfdcbe3 nothing much 2022-08-09 15:11:25 -04:00
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