More debugging for VMs.
[akaros.git] / kern / arch / x86 / trap32.c
index dbc9140..3638833 100644 (file)
@@ -63,7 +63,7 @@ void print_trapframe(struct hw_trapframe *hw_tf)
        /* This is only called in debug scenarios, and often when the kernel trapped
         * and needs to tell us about it.  Disable the lock checker so it doesn't go
         * nuts when we print/panic */
        /* This is only called in debug scenarios, and often when the kernel trapped
         * and needs to tell us about it.  Disable the lock checker so it doesn't go
         * nuts when we print/panic */
-       pcpui->__lock_depth_disabled++;
+       pcpui->__lock_checking_enabled--;
        spin_lock_irqsave(&ptf_lock);
        printk("TRAP frame at %p on core %d\n", hw_tf, core_id());
        print_regs(&hw_tf->tf_regs);
        spin_lock_irqsave(&ptf_lock);
        printk("TRAP frame at %p on core %d\n", hw_tf, core_id());
        print_regs(&hw_tf->tf_regs);
@@ -83,7 +83,7 @@ void print_trapframe(struct hw_trapframe *hw_tf)
                printk("  ss   0x----%04x\n", hw_tf->tf_ss);
        }
        spin_unlock_irqsave(&ptf_lock);
                printk("  ss   0x----%04x\n", hw_tf->tf_ss);
        }
        spin_unlock_irqsave(&ptf_lock);
-       pcpui->__lock_depth_disabled--;
+       pcpui->__lock_checking_enabled++;
 }
 
 void page_fault_handler(struct hw_trapframe *hw_tf)
 }
 
 void page_fault_handler(struct hw_trapframe *hw_tf)
@@ -95,6 +95,7 @@ void page_fault_handler(struct hw_trapframe *hw_tf)
        /* TODO - handle kernel page faults */
        if ((hw_tf->tf_cs & 3) == 0) {
                print_trapframe(hw_tf);
        /* TODO - handle kernel page faults */
        if ((hw_tf->tf_cs & 3) == 0) {
                print_trapframe(hw_tf);
+               backtrace_kframe(hw_tf);
                panic("Page Fault in the Kernel at 0x%08x!", fault_va);
                /* if we want to do something like kill a process or other code, be
                 * aware we are in a sort of irq-like context, meaning the main kernel
                panic("Page Fault in the Kernel at 0x%08x!", fault_va);
                /* if we want to do something like kill a process or other code, be
                 * aware we are in a sort of irq-like context, meaning the main kernel
@@ -118,10 +119,3 @@ void page_fault_handler(struct hw_trapframe *hw_tf)
                proc_destroy(current);
        }
 }
                proc_destroy(current);
        }
 }
-
-void sysenter_init(void)
-{
-       write_msr(MSR_IA32_SYSENTER_CS, GD_KT);
-       write_msr(MSR_IA32_SYSENTER_ESP, ts.ts_esp0);
-       write_msr(MSR_IA32_SYSENTER_EIP, (uint32_t) &sysenter_handler);
-}