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-devel

[Xen-devel] [PATCH] x86: suppress pointless Xen messages from ioapic_gue

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] x86: suppress pointless Xen messages from ioapic_guest_write()
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: Wed, 17 Mar 2010 11:39:55 +0000
Delivery-date: Wed, 17 Mar 2010 04:40:36 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Previously, these messages were only issued when old and new RTE
differed. Make it so again (requiring adjustment of the guest provided
RTE as that no longer holds a real vector).

While at it, also make the "allocated vector for irq" message more
useful and occur when what it says really happened.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

--- 2010-03-02.orig/xen/arch/x86/io_apic.c      2010-03-17 12:02:43.000000000 
+0100
+++ 2010-03-02/xen/arch/x86/io_apic.c   2010-03-17 12:08:06.000000000 +0100
@@ -2282,18 +2282,24 @@ int ioapic_guest_write(unsigned long phy
     
     if ( desc->action )
     {
-        WARN_BOGUS_WRITE("Attempt to modify IO-APIC pin for in-use IRQ!\n");
+        spin_lock_irqsave(&ioapic_lock, flags);
+        ret = io_apic_read(apic, 0x10 + 2 * pin);
+        spin_unlock_irqrestore(&ioapic_lock, flags);
+        rte.vector = cfg->vector;
+        if ( *(u32*)&rte != ret )
+            WARN_BOGUS_WRITE("old_entry=%08x pirq=%d\n%s: "
+                             "Attempt to modify IO-APIC pin for in-use IRQ!\n",
+                             ret, pirq, __FUNCTION__);
         return 0;
     }
 
     if ( cfg->vector <= 0 || cfg->vector > LAST_DYNAMIC_VECTOR ) {
-
-        printk("allocated vector for irq:%d\n", irq);
-        
         vector = assign_irq_vector(irq);
         if ( vector < 0 )
             return vector;
 
+        printk(XENLOG_INFO "allocated vector %02x for irq %d\n", vector, irq);
+
         add_pin_to_irq(irq, apic, pin);
     }
     spin_lock(&pcidevs_lock);



Attachment: x86-ioapic-guest-write.patch
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] x86: suppress pointless Xen messages from ioapic_guest_write(), Jan Beulich <=