summaryrefslogtreecommitdiff
path: root/kernel/proc.c
AgeCommit message (Collapse)AuthorFilesLines
2022-08-12Experiment with being more precise setting permissions for user pages.Frans Kaashoek1-1/+1
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-12cosmetic changes (thanks Harry Porter)Frans Kaashoek1-3/+4
2022-08-12Add USED to states (thanks Harry Porter)Frans Kaashoek1-0/+2
2022-08-09nothing muchRobert Morris1-8/+13
2020-11-05proc_tree_lock -> wait_lockRobert Morris1-14/+15
2020-11-05don't over-lock in exit()Robert Morris1-2/+4
2020-11-05oopsRobert Morris1-1/+1
2020-11-05Frans' proc_lock.Robert Morris1-76/+33
2020-11-05free proc if kalloc failsRobert Morris1-0/+1
2020-10-14kvmmake() makes a complete kernel page table, matching Figure 3.3Frans Kaashoek1-11/+18
2020-08-17handle another out-of-memory in fork(). the policy here is not consistent,Robert Morris1-0/+2
since other calls (e.g. exec()) panic on out of memory.
2020-08-17try to handle a few of the possible out-of-memory errors in fork()Robert Morris1-5/+18
2020-08-17modify uvmunmap() to be in aligned pagesRobert Morris1-2/+2
fix a bug in fork() recovering from out of memory
2020-08-10Merge pull request #9 from d0iasm/riscvFrans Kaashoek1-7/+7
update initcode to avoid using the compressed extension
2020-08-10modify each page in usertests countfree()Robert Morris1-2/+3
get rid of static for walk() and freewalk()
2020-08-10cpu->scheduler -> cpu->context to reduce confusionRobert Morris1-2/+2
2020-08-10rename p->tf to p->trapframe, for consistency with p->contextRobert Morris1-9/+9
2020-03-20update initcode to avoid using the compressed extensionAsami Doi1-7/+7
2019-10-27fix a potential memory leakRobert Morris1-2/+1
2019-10-16nitsRobert Morris1-1/+1
2019-09-23story is more complex than I thought.Robert Morris1-8/+11
2019-09-23bug fix: reparent() sometimes deadlockedRobert Morris1-15/+32
bug fix: exit() sometimes released a different parent lock than it acquired usertests
2019-09-20don't panic if a program frees all its memory with sbrk().Robert Morris1-3/+1
if a program sbrk()'s to a non-page-boundary, don't free that page. corresponding usertests.
2019-09-10Support exit status for exit/waitFrans Kaashoek1-2/+10
One test case for returning a exit status Passes usertests, but haven't used it to simplify tests
2019-08-19A few now unused DOCFrans Kaashoek1-2/+2
2019-08-18Cosmetic cleanup: fsinit reads sb and calls loginit. initialize icacheFrans Kaashoek1-4/+3
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-07-27beautify console.cRobert Morris1-0/+1
2019-07-26trampin -> uservecRobert Morris1-2/+2
trampout -> userret
2019-07-25fix an exit/exit deadlock -> one more locking protocol violationRobert Morris1-10/+14
increase timer rate from 1/second to 10/second
2019-07-24rationalize some vm function namesRobert Morris1-3/+3
2019-07-24no more PAGEBREAKRobert Morris1-3/+0
2019-07-23simplify kernel mapping callsRobert Morris1-6/+12
2019-07-23a few core -> CPURobert Morris1-1/+1
get rid of PDF generating support
2019-07-22fix mapkstackFrans Kaashoek1-2/+2
2019-07-22-MD and TRAPFRAMERobert Morris1-3/+3
2019-07-22Merge branch 'riscv-kstack' into riscvFrans Kaashoek1-13/+7
2019-07-20not muchRobert Morris1-5/+4
2019-07-20pi for pipe, rather than p, to avoid confusion with proc's p->lockRobert Morris1-17/+10
2019-07-20not muchRobert Morris1-2/+2
2019-07-19it's not clear that the release will always enable interruptsRobert Morris1-3/+3
2019-07-19with per-proc locks, we don't need the intr_on() inside the loop.Robert Morris1-3/+3
2019-07-19One way of supporting a guard page below kstack: allocate kstacks inFrans Kaashoek1-13/+7
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-16conservatively call sfence.vma before every satp load.Robert Morris1-1/+1
2019-07-10nitsRobert Morris1-1/+3
2019-07-10more comment cleanupRobert Morris1-24/+30
2019-07-10have kill() lock before looking at p->pidRobert Morris1-22/+27
document wait()'s use of np->parent w/o holding lock.
2019-07-10tweak some comments.Robert Morris1-12/+8
2019-07-08holding p->lock all the way through state=RUNNABLE means we don't need EMBRYORobert Morris1-11/+6
2019-07-07eliminate ptable. ptable.lock -> pid_lock.Robert Morris1-15/+14
2019-07-07nitsRobert Morris1-10/+11