Make all nmi debugkey tracing arch specific.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 13 Jan 2006 22:41:28 +0000 (23:41 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 13 Jan 2006 22:41:28 +0000 (23:41 +0100)
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/nmi.c
xen/common/keyhandler.c

index 96c55572cdbc8e339123be69a08066ba6eb00244..e2a053fe9359359417ee123640ad21f7fe15dbab 100644 (file)
@@ -448,9 +448,31 @@ static void do_nmi_trigger(unsigned char key)
     local_irq_enable();
 }
 
+static void do_nmi_stats(unsigned char key)
+{
+    int i;
+    struct domain *d;
+    struct vcpu *v;
+    printk("CPU\tNMI\n");
+    for_each_cpu(i)
+        printk("%3d\t%3d\n", i, nmi_count(i));
+
+    if ((d = dom0) == NULL)
+        return;
+    if ((v = d->vcpu[0]) == NULL)
+        return;
+    if (v->vcpu_flags & (VCPUF_nmi_pending|VCPUF_nmi_masked))
+        printk("dom0 vpu0: NMI %s%s\n",
+               v->vcpu_flags & VCPUF_nmi_pending ? "pending " : "",
+               v->vcpu_flags & VCPUF_nmi_masked ? "masked " : "");
+    else
+        printk("dom0 vcpu0: NMI neither pending nor masked\n");
+}
+
 static __init int register_nmi_trigger(void)
 {
     register_keyhandler('n', do_nmi_trigger, "trigger an NMI");
+    register_keyhandler('N', do_nmi_stats,   "NMI statistics");
     return 0;
 }
 __initcall(register_nmi_trigger);
index 5fc1e6b04c1d184034bd224df1a50aec3c0cfaba..b239391462a6b6fea6ecb94066f5f8d5c43e6d9a 100644 (file)
@@ -185,27 +185,6 @@ void do_debug_key(unsigned char key, struct cpu_user_regs *regs)
                              bit. */
 }
 
-void do_nmi_stats(unsigned char key)
-{
-    int i;
-    struct domain *d;
-    struct vcpu *v;
-    printk("CPU\tNMI\n");
-    for_each_cpu(i)
-        printk("%3d\t%3d\n", i, nmi_count(i));
-
-    if ((d = dom0) == NULL)
-        return;
-    if ((v = d->vcpu[0]) == NULL)
-        return;
-    if (v->vcpu_flags & (VCPUF_nmi_pending|VCPUF_nmi_masked))
-        printk("dom0 vpu0: NMI %s%s\n",
-               v->vcpu_flags & VCPUF_nmi_pending ? "pending " : "",
-               v->vcpu_flags & VCPUF_nmi_masked ? "masked " : "");
-    else
-        printk("dom0 vcpu0: NMI neither pending nor masked\n");
-}
-
 #ifndef NDEBUG
 void debugtrace_key(unsigned char key)
 {
@@ -234,7 +213,6 @@ void initialize_keytable(void)
         'r', dump_runq,      "dump run queues");
     register_irq_keyhandler(
         'R', halt_machine,   "reboot machine"); 
-    register_keyhandler('N', do_nmi_stats,   "NMI statistics");
 
 #ifndef NDEBUG
     register_keyhandler(