minix/kernel
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
system Code cleanup: remove unused #include, variables and code, 2010-04-15 18:49:36 +00:00
clock.c Userspace scheduling 2010-03-29 11:07:20 +00:00
clock.h Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
config.h Driver refactory for live update and crash recovery. 2010-04-08 13:41:35 +00:00
const.h Fixed brackets in bitmap macros 2010-03-30 08:34:33 +00:00
debug.c Userspace scheduling 2010-03-29 11:07:20 +00:00
debug.h NOREC_ENTER and NOREC_RETURN checks removed 2010-03-29 11:43:10 +00:00
glo.h Changed pagefault delivery to VM 2010-04-26 23:21:26 +00:00
interrupt.c Remove useless symbol declarations from headers, make symbols local where possible, add some explicit initialization to global variables. 2010-04-22 07:49:40 +00:00
ipc.h Set IPC status code only for RECEIVE 2010-04-26 14:43:59 +00:00
kernel.h Time accounting based on TSC 2010-02-10 15:36:54 +00:00
main.c Remove useless symbol declarations from headers, make symbols local where possible, add some explicit initialization to global variables. 2010-04-22 07:49:40 +00:00
Makefile Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
priv.h New RS and new signal handling for system processes. 2010-03-17 01:15:29 +00:00
proc.c Set IPC status code only for RECEIVE 2010-04-26 14:43:59 +00:00
proc.h Changed pagefault delivery to VM 2010-04-26 23:21:26 +00:00
profile.c remove intr_disabled() as interrupts are always disabled in the kernel now. 2010-04-26 15:32:42 +00:00
profile.h cprofile not conditional 2009-01-09 21:44:52 +00:00
proto.h Remove useless symbol declarations from headers, make symbols local where possible, add some explicit initialization to global variables. 2010-04-22 07:49:40 +00:00
start.c Remove U16_t and most other similar types. Rewrite functions to ansi-style 2010-04-21 11:05:22 +00:00
system.c Remove useless symbol declarations from headers, make symbols local where possible, add some explicit initialization to global variables. 2010-04-22 07:49:40 +00:00
system.h Driver refactory for live update and crash recovery. 2010-04-08 13:41:35 +00:00
table.c Prioritized NOTIFY messages for reliable asynchonrous delivery of system events. 2010-03-22 23:44:55 +00:00
type.h Miscellaneous code cleanup. 2010-03-22 20:43:06 +00:00
utility.c panic() cleanup. 2010-03-05 15:05:11 +00:00
vm.h intr_disabled() tests removed 2010-02-09 15:29:58 +00:00
watchdog.c Remove useless symbol declarations from headers, make symbols local where possible, add some explicit initialization to global variables. 2010-04-22 07:49:40 +00:00
watchdog.h Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00