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
..
2019-06-13 06:57:38 -04:00
2019-06-11 09:57:14 -04:00
2019-06-13 10:29:27 -04:00
2019-06-11 09:57:14 -04:00
2019-06-13 10:29:27 -04:00
2019-06-13 10:29:27 -04:00
2019-06-13 10:29:27 -04:00
2019-06-13 06:49:02 -04:00
2019-06-11 09:57:14 -04:00
2019-06-13 06:57:38 -04:00
2019-06-13 09:40:17 -04:00
2019-07-10 14:54:34 -04:00
2019-07-04 08:57:23 -04:00
2019-07-02 14:19:31 -04:00
2019-07-02 14:19:31 -04:00
2019-07-11 10:38:56 -04:00