minix/kernel/arch/i386
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
..
include Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
apic.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
apic.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
apic_asm.h Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
apic_asm.S Interrupts hadling while idle 2010-03-23 13:35:01 +00:00
arch_clock.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
arch_do_vmctl.c Changed pagefault delivery to VM 2010-04-26 23:21:26 +00:00
arch_system.c do_ipc() rearrangements 2010-04-06 11:24:26 +00:00
arch_watchdog.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
breakpoints.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
debugreg.h More use of endpoint_t. Other code cleanup. 2010-03-30 14:07:15 +00:00
debugreg.S this patch adds access to the debug breakpoints to 2010-03-19 19:15:20 +00:00
do_int86.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_iopenable.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_readbios.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_sdevio.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
exception.c Changed pagefault delivery to VM 2010-04-26 23:21:26 +00:00
glo.h Local APIC 2009-11-16 21:41:44 +00:00
i8259.c remove intr_disabled() as interrupts are always disabled in the kernel now. 2010-04-26 15:32:42 +00:00
klib.S Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
Makefile.inc Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
memory.c Remove the types Dev_t, _mnx_Gui, _mnx_Uid, and similar. 2010-04-13 10:58:41 +00:00
mpx.S do_ipc() rearrangements 2010-04-06 11:24:26 +00:00
protect.c Remove U16_t and most other similar types. Rewrite functions to ansi-style 2010-04-21 11:05:22 +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
sconst.h Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00