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

RE: [Xen-devel] pvops-2.6.32 - Interrupt routing problem



With my previous patch, seems you still need to apply the following patch to 
xen.git. In this way, the GSI 0-15 are still setup by hypervisor, but it also 
give one chance for dom0 to re-programme its polarity and trigger mode. 
Xiantao 

diff --git a/arch/x86/xen/pci.c b/arch/x86/xen/pci.c
index f999ad8..409bb66 100644
--- a/arch/x86/xen/pci.c
+++ b/arch/x86/xen/pci.c
@@ -80,17 +80,6 @@ void __init xen_setup_pirqs(void)
                return;
        }

-       /* Pre-allocate legacy irqs */
-       for (irq = 0; irq < NR_IRQS_LEGACY; irq++) {
-               int trigger, polarity;
-
-               if (acpi_get_override_irq(irq, &trigger, &polarity) == -1)
-                       continue;
-
-               xen_register_gsi(irq,
-                       trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE,
-                       polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH);
-       }
 }

 #ifdef CONFIG_PCI_MSI



Bastian Blank wrote:
> On Mon, Mar 15, 2010 at 12:30:32PM +0800, Zhang, Xiantao wrote:
>> Could you try the following patch ?  Currently, the GSI 0-15 's
>> polarity and trigger mode are determined by hypervisor, and maybe
>> hypervisor and dom0 has no agreement to determin them. Just follow
>> dom0's setting with this patch, and I think it maybe work for you.   
> 
> No, it does not. mp_register_gsi also disallows reprogramming of
> already 
> setup IO-APIC entries. But if I force it with the following hack, it
> works. So I would assume this a bug in the hypervisor to setup the GSI
> without knowing anything about it.
> 
> Bastian
> 
> diff -r 4152a3ce90a7 xen/arch/x86/mpparse.c
> --- a/xen/arch/x86/mpparse.c    Thu Mar 11 17:40:35 2010 +0000
> +++ b/xen/arch/x86/mpparse.c    Mon Mar 15 11:09:27 2010 +0100
> @@ -1143,5 +1143,5 @@
>         if ((1<<bit) & mp_ioapic_routing[ioapic].pin_programmed[idx])
>                 { Dprintk(KERN_DEBUG "Pin %d-%d already programmed\n",
>                         mp_ioapic_routing[ioapic].apic_id,
> ioapic_pin); +                if (mp_ioapic_routing[ioapic].apic_id
>                 == 8 && ioapic_pin == 14); else return -EEXIST;
>         }


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


 


Rackspace

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