[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] irq: Add extra debugging to help track down why an assertion is failing



# HG changeset patch
# User Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
# Date 1328640252 0
# Node ID 96987c324a4f42bf642e3e15e8e8fff331fef182
# Parent  f84f34ec5fc7613d7a6dd53d18218656c11f0daa
irq: Add extra debugging to help track down why an assertion is failing

Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Acked-by: Keir Fraser <keir@xxxxxxx>
Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---


diff -r f84f34ec5fc7 -r 96987c324a4f xen/arch/x86/irq.c
--- a/xen/arch/x86/irq.c        Tue Feb 07 17:21:27 2012 +0000
+++ b/xen/arch/x86/irq.c        Tue Feb 07 18:44:12 2012 +0000
@@ -608,6 +608,8 @@
     desc->handler->enable(desc);
 }
 
+static void dump_irqs(unsigned char key);
+
 fastcall void smp_irq_move_cleanup_interrupt(struct cpu_user_regs *regs)
 {
     unsigned vector, me;
@@ -667,7 +669,18 @@
 
             if ( desc->arch.used_vectors )
             {
-                ASSERT(test_bit(vector, desc->arch.used_vectors));
+                if ( unlikely(!test_bit(vector, desc->arch.used_vectors)) )
+                {
+                    bitmap_scnlistprintf(keyhandler_scratch,
+                                         sizeof(keyhandler_scratch),
+                                         desc->arch.used_vectors->_bits,
+                                         NR_VECTORS);
+                    printk("*** IRQ BUG found ***\n"
+                           "CPU%d -Testing vector %d from bitmap %s\n",
+                           me, vector, keyhandler_scratch);
+                    dump_irqs('i');
+                    BUG();
+                }
                 clear_bit(vector, desc->arch.used_vectors);
             }
         }

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.