Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Detect recursive page faults and halt
Trammell Hudson [Wed, 22 Oct 2008 00:53:58 +0000 (19:53 -0500)]
kitten/arch/x86_64/kernel/interrupts.c

index 7441829..19ba726 100644 (file)
@@ -136,7 +136,12 @@ do_general_protection(struct pt_regs *regs, unsigned int vector)
 void
 do_page_fault(struct pt_regs *regs, unsigned int vector)
 {
-       printk("Page Fault Exception\n");
+       printk("Page Fault Exception (regs %p)\n", regs );
+
+       static uint8_t recursive_fault;
+       if( recursive_fault++ )
+               panic( "Recursive page fault!  Halt and catch fire!" );
+
        show_registers(regs);
        while (1) {}
 }