minix/servers/vm
Tomas Hruby f51eea4b32 Changed pagefault delivery to VM
this patch changes the way pagefaults are delivered to VM. It adopts
the same model as the out-of-quantum messages sent by kernel to a
scheduler.

- everytime a userspace pagefault occurs, kernel creates a message
  which is sent to VM on behalf of the faulting process

- the process is blocked on delivery to VM in the standard IPC code
  instead of waiting in a spacial in-kernel queue (stack) and is not
  runnable until VM tell kernel that the pagefault is resolved and is
  free to clear the RTS_PAGEFAULT flag.

- VM does not need call kernel and poll the pagefault information
  which saves many (1/2?) calls and kernel calls that return "no more
  data"

- VM notification by kernel does not need to use signals

- each entry in proc table is by 12 bytes smaller (~3k save)
2010-04-26 23:21:26 +00:00
..
arch/i386 Changed pagefault delivery to VM 2010-04-26 23:21:26 +00:00
addravl.c - pages that points to page directory values of all processes, 2009-09-21 14:49:49 +00:00
addravl.h - pages that points to page directory values of all processes, 2009-09-21 14:49:49 +00:00
alloc.c vm: use assert() instead of vm_assert(); remove vm_assert(). 2010-04-12 12:37:28 +00:00
break.c - Add support for the ucontext system calls (getcontext, setcontext, 2010-03-12 15:58:41 +00:00
cavl_if.h Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
cavl_impl.h Removal of the executable flag from files that cannot be executed 2009-11-09 10:26:00 +00:00
exec.c Remove the types Dev_t, _mnx_Gui, _mnx_Uid, and similar. 2010-04-13 10:58:41 +00:00
exit.c let vm use physically fragmented memory for allocations. 2010-04-12 11:25:24 +00:00
fork.c vm: use assert() instead of vm_assert(); remove vm_assert(). 2010-04-12 12:37:28 +00:00
glo.h let vm use physically fragmented memory for allocations. 2010-04-12 11:25:24 +00:00
main.c Changed pagefault delivery to VM 2010-04-26 23:21:26 +00:00
Makefile let vm use physically fragmented memory for allocations. 2010-04-12 11:25:24 +00:00
memlist.h let vm use physically fragmented memory for allocations. 2010-04-12 11:25:24 +00:00
mmap.c vm: use assert() instead of vm_assert(); remove vm_assert(). 2010-04-12 12:37:28 +00:00
pagefaults.c Changed pagefault delivery to VM 2010-04-26 23:21:26 +00:00
pagerange.h - pages that points to page directory values of all processes, 2009-09-21 14:49:49 +00:00
physravl.c - pages that points to page directory values of all processes, 2009-09-21 14:49:49 +00:00
physravl.h - pages that points to page directory values of all processes, 2009-09-21 14:49:49 +00:00
proto.h Changed pagefault delivery to VM 2010-04-26 23:21:26 +00:00
queryexit.c Merge of Wu's GSOC 09 branch (src.20090525.r4372.wu) 2010-01-14 15:24:16 +00:00
region.c vm: don't force physical addresses to be nonzero. 2010-04-13 11:01:40 +00:00
region.h let vm use physically fragmented memory for allocations. 2010-04-12 11:25:24 +00:00
rs.c vm: use assert() instead of vm_assert(); remove vm_assert(). 2010-04-12 12:37:28 +00:00
sanitycheck.h vm: use assert() instead of vm_assert(); remove vm_assert(). 2010-04-12 12:37:28 +00:00
signal.c panic() cleanup. 2010-03-05 15:05:11 +00:00
slaballoc.c vm: use assert() instead of vm_assert(); remove vm_assert(). 2010-04-12 12:37:28 +00:00
util.h vm: use assert() instead of vm_assert(); remove vm_assert(). 2010-04-12 12:37:28 +00:00
utility.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
vm.h vm: use assert() instead of vm_assert(); remove vm_assert(). 2010-04-12 12:37:28 +00:00
vmproc.h let vm use physically fragmented memory for allocations. 2010-04-12 11:25:24 +00:00