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

Re: [Xen-devel] Query: Boot time allocation of irq descriptors



>>> On 11.02.15 at 16:03, <vijay.kilari@xxxxxxxxx> wrote:
> On Wed, Feb 11, 2015 at 8:25 PM, Andrew Cooper
> <andrew.cooper3@xxxxxxxxxx> wrote:
>> On 11/02/15 14:50, Vijay Kilari wrote:
>>> Hi ,
>>>
>>>   I just glaced at the x86 code, here nr_irqs are set to 1024, which 
> includes
>>> normal irq's and MSI's. Memory for these descriptors are allocated at boot 
> time.
>>> is it correct?
>>>
>>> int __init init_irq_data(void)
>>> {
>>>
>>> ...
>>>     for (vector = 0; vector < NR_VECTORS; ++vector)
>>>         this_cpu(vector_irq)[vector] = INT_MIN;
>>>
>>>     irq_desc = xzalloc_array(struct irq_desc, nr_irqs);
>>>
>>> ...
>>> }
>>>
>>>
>>> In xen/include/asm-x86/irq.h
>>>
>>> #define MSI_IRQ(irq)       ((irq) >= nr_irqs_gsi && (irq) < nr_irqs)
>>
>> What do you think is incorrect about it?
> 
> Nothing wrong with it.
> 
>   I am trying to add MSI support for arm64 where the number of
> MSI interrupts are not limited to 1024. It can support large number of 
> MSI's.

So where did you spot this 1024? What I find (and wrote) is

    if ( nr_irqs == 0 )
        nr_irqs = cpu_has_apic ?
                  max(16U + num_present_cpus() * NR_DYNAMIC_VECTORS,
                      8 * nr_irqs_gsi) :
                  nr_irqs_gsi;
    else if ( nr_irqs < 16 )
        nr_irqs = 16;

Jan


_______________________________________________
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®.