WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] xen: include MSI/MSI-X information in int

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] xen: include MSI/MSI-X information in interrupt debug output
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 07 Apr 2009 23:00:44 -0700
Delivery-date: Tue, 07 Apr 2009 23:02:45 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1238495972 -3600
# Node ID 1f893d68a6ad79e60348a4e27aec23157240d054
# Parent  d64a487d6c32e43864d4ccca065d87606ff7b737
xen: include MSI/MSI-X information in interrupt debug output

With per-domain irq-to-vector mappings, dump_irqs() omitted some
vectors. This patch cycles through the vectors rather than
interrupts and prints the same debug information. The patch also
prints out information about mapped but unbound interrupts.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@xxxxxxxxxxxxx>
---
 xen/arch/x86/irq.c |   38 ++++++++++++++++++++++----------------
 1 files changed, 22 insertions(+), 16 deletions(-)

diff -r d64a487d6c32 -r 1f893d68a6ad xen/arch/x86/irq.c
--- a/xen/arch/x86/irq.c        Tue Mar 31 11:38:05 2009 +0100
+++ b/xen/arch/x86/irq.c        Tue Mar 31 11:39:32 2009 +0100
@@ -1069,7 +1069,7 @@ extern void dump_ioapic_irq_info(void);
 
 static void dump_irqs(unsigned char key)
 {
-    int i, irq, vector;
+    int i, glob_irq, irq, vector;
     irq_desc_t *desc;
     irq_guest_action_t *action;
     struct domain *d;
@@ -1077,41 +1077,47 @@ static void dump_irqs(unsigned char key)
 
     printk("Guest interrupt information:\n");
 
-    for ( irq = 0; irq < NR_IRQS; irq++ )
-    {
-        vector = irq_to_vector(irq);
-        if ( vector == 0 )
+    for ( vector = 0; vector < NR_VECTORS; vector++ )
+    {
+
+        glob_irq = vector_to_irq(vector);
+
+        desc = &irq_desc[vector];
+        if ( desc == NULL || desc->handler == &no_irq_type )
             continue;
 
-        desc = &irq_desc[vector];
-
         spin_lock_irqsave(&desc->lock, flags);
 
-        if ( desc->status & IRQ_GUEST )
+        if ( !(desc->status & IRQ_GUEST) )
+            printk("   Vec%3d IRQ%3d: type=%-15s status=%08x "
+                   "mapped, unbound\n",
+                   vector, glob_irq, desc->handler->typename, desc->status);
+        else
         {
             action = (irq_guest_action_t *)desc->action;
 
-            printk("    IRQ%3d Vec%3d: type=%-15s status=%08x "
+            printk("   Vec%3d IRQ%3d: type=%-15s status=%08x "
                    "in-flight=%d domain-list=",
-                   irq, vector, desc->handler->typename,
+                   vector, glob_irq, desc->handler->typename,
                    desc->status, action->in_flight);
 
             for ( i = 0; i < action->nr_guests; i++ )
             {
                 d = action->guest[i];
-                printk("%u(%c%c%c%c)",
-                       d->domain_id,
-                       (test_bit(d->pirq_to_evtchn[irq],
+                irq = domain_vector_to_irq(d, vector);
+                printk("%u:%3d(%c%c%c%c)",
+                       d->domain_id, irq,
+                       (test_bit(d->pirq_to_evtchn[glob_irq],
                                  &shared_info(d, evtchn_pending)) ?
                         'P' : '-'),
-                       (test_bit(d->pirq_to_evtchn[irq] /
+                       (test_bit(d->pirq_to_evtchn[glob_irq] /
                                  BITS_PER_EVTCHN_WORD(d),
                                  &vcpu_info(d->vcpu[0], evtchn_pending_sel)) ?
                         'S' : '-'),
-                       (test_bit(d->pirq_to_evtchn[irq],
+                       (test_bit(d->pirq_to_evtchn[glob_irq],
                                  &shared_info(d, evtchn_mask)) ?
                         'M' : '-'),
-                       (test_bit(irq, d->pirq_mask) ?
+                       (test_bit(glob_irq, d->pirq_mask) ?
                         'M' : '-'));
                 if ( i != action->nr_guests )
                     printk(",");

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] xen: include MSI/MSI-X information in interrupt debug output, Xen patchbot-unstable <=