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

Re: [Xen-devel] nr_irqs_gsi



>>> On 12.07.12 at 01:56, Joe Jin <joe.jin@xxxxxxxxxx> wrote:
> On 07/11/12 17:42, Andrew Cooper wrote:
>> 
>> No.  There are 55 GSIs, indexed 0 thru 54.  You would be introducing an
>> off-by-one error by changing the condition.
> 
> Per xen log, I think it should be 0-55? for it start from 0 yet, please 
> confirm!

Indeed it should. And I think it's this line

    nr_irqs_gsi = max(nr_irqs_gsi, highest_gsi());

in io_apic.c:init_ioapic_mappings(), which fails to add 1 to the
result of highest_gsi() (regression from c/s 20076:2b8b6ee95c93).

>>> (XEN) ACPI: IOAPIC (id[0x00] address[0xfec00000] gsi_base[0])
>>> (XEN) IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-23
>>> (XEN) ACPI: IOAPIC (id[0x01] address[0xfec80000] gsi_base[32])
>>> (XEN) IOAPIC[1]: apic_id 1, version 32, address 0xfec80000, GSI 32-55

Would you retry with the patch below?

Jan

--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2531,7 +2531,9 @@ void __init init_ioapic_mappings(void)
         }
     }
 
-    nr_irqs_gsi = max(nr_irqs_gsi, highest_gsi());
+    i = highest_gsi();
+    if ( i >= nr_irqs_gsi )
+        nr_irqs_gsi = i + 1;
 
     if ( max_gsi_irqs == 0 )
         max_gsi_irqs = nr_irqs ? nr_irqs / 8 : PAGE_SIZE;





_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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