xen: Send the debug VIRQ to guests after the rest of the domain dump is done.
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 16 Jul 2010 12:51:27 +0000 (13:51 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 16 Jul 2010 12:51:27 +0000 (13:51 +0100)
Send the debug VIRQ to guests after the rest of the domain dump is
done. This stops all the 'q' debug-key output getting interleaved with
the debug-virq output from a pv-ops dom0 kernel.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
xen/common/keyhandler.c

index 058d3e3a8942161b09ca31018d69486d04584b62..f05bde01ff404ad034f70d95a568acb74326b18e 100644 (file)
@@ -255,7 +255,7 @@ static void dump_domains(unsigned char key)
                d->handle[ 8], d->handle[ 9], d->handle[10], d->handle[11],
                d->handle[12], d->handle[13], d->handle[14], d->handle[15],
                d->vm_assist);
-        for (i = 0 ; i < NR_DOMAIN_WATCHDOG_TIMERS; i++)
+        for ( i = 0 ; i < NR_DOMAIN_WATCHDOG_TIMERS; i++ )
             if ( test_bit(i, &d->watchdog_inuse_map) )
                 printk("    watchdog %d expires in %d seconds\n",
                        i, (u32)((d->watchdog_timer[i].expires - NOW()) >> 30));
@@ -268,7 +268,8 @@ static void dump_domains(unsigned char key)
                
         printk("VCPU information and callbacks for domain %u:\n",
                d->domain_id);
-        for_each_vcpu ( d, v ) {
+        for_each_vcpu ( d, v )
+        {
             printk("    VCPU%d: CPU%d [has=%c] flags=%lx poll=%d "
                    "upcall_pend = %02x, upcall_mask = %02x ",
                    v->vcpu_id, v->processor,
@@ -283,7 +284,15 @@ static void dump_domains(unsigned char key)
             arch_dump_vcpu_info(v);
             periodic_timer_print(tmpstr, sizeof(tmpstr), v->periodic_period);
             printk("    %s\n", tmpstr);
-            printk("    Notifying guest (virq %d, port %d, stat %d/%d/%d)\n",
+        }
+    }
+
+    for_each_domain ( d )
+    {
+        for_each_vcpu ( d, v )
+        {
+            printk("Notifying guest %d:%d (virq %d, port %d, stat %d/%d/%d)\n",
+                   d->domain_id, v->vcpu_id,
                    VIRQ_DEBUG, v->virq_to_evtchn[VIRQ_DEBUG],
                    test_bit(v->virq_to_evtchn[VIRQ_DEBUG], 
                             &shared_info(d, evtchn_pending)),