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

Re: [Xen-devel] [PATCH] xen/arm: Implement dynamic allocation of irq descriptors



On 23/02/15 16:09, Vijay Kilari wrote:
> On Mon, Feb 23, 2015 at 9:10 PM, Julien Grall <julien.grall@xxxxxxxxxx> wrote:
>> Hello Vijay,
>>
>> On 23/02/15 13:04, Vijay Kilari wrote:
>>> On Thu, Feb 19, 2015 at 7:33 PM, Julien Grall <julien.grall@xxxxxxxxxx> 
>>> wrote:
>>>> On 19/02/15 07:17, vijay.kilari@xxxxxxxxx wrote:
>>>>> From: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxxxxxxxxxx>
>>>>>
>>>>> For arm memory for 1024 irq descriptors are allocated
>>>>> statically irrespective of number of interrupt supported
>>>>> by the platform.
>>>>>
>>>>> With this patch, irq descriptors are allocated at run time
>>>>> and managed using red-black tree. Functions to insert, search
>>>>> and delete irq descriptor are implemented in xen/common/irq.c.
>>>>
>>>> I think we may want to allocate SPIs/SGIs/PPIs at boot time. This number
>>>> will never change. We can avoid to always to allocate 1024 IRQs by using
>>>> the number provided by the GIC.
>>>
>>> The irq descriptor is allocated when platform_get_irq() is called or
>>> route_irq_to_guest()
>>> only. So we are not allocating based on GIC.
>>
>> You didn't understand what I said... I was suggesting to allocate SPIs
>> at boot time. Using an array for them allow us to access to IRQ desc in
>> constant time. This may help interrupt latency.
> 
> Yes, I have thought about it. May be we can choose this approach for SPIs
> but for LPI's, the GIC can support upto ~32K. So in this case it won't make
> sense for LPI's

Again... I never said it was a bad idea for LPIs. I was only point out
that it may not be worth for SPIs.

[..]

>> I think we should consider to create a separate structure for LPI's.
> 
> Yes, I have created separate structure for LPI's for ITS driver.
>  But as I said LPI's are to many, so cannot allocate at domain creation.

Ditto. The new structure can be a radix tree. I never suggested to use
an array.

[..]

>>>> What's the matter to put this function on the common code when the
>>>> variable itself lives in the architecture code?
>>>
>>> Which code is common here?
>>
>> Any file living in xen/common is part of the common code...
> 
> The rb_root variable is in arch specific code. But it is passed as parameter.
> The API's to handle addtion/deletion/search based on irq can be use by
> other platforms eg. x86 irq_desc being commong structure 
> (xen/include/xen/irq.h)

Please add a comment somewhere to explain it.

Regards,

-- 
Julien Grall

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