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

Re: [Xen-devel] [RFC PATCH] xen/arm: Deliver interrupts to vcpu specified in IROUTER

On Mon, Sep 8, 2014 at 7:17 PM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> On Mon, 2014-09-08 at 19:11 +0530, Vijay Kilari wrote:
> Why have we dropped the list?

I have not dropped the list. I still see list in my email.

>> Hi Stefano,
>>  Apart from your comments below, I encounter below scenario.
>> The below function vgic_irq_rank() in vgic.c is not generic. The rank is 
>> always
>> depends on register type it is going to access. So it cannot be
>> just hardcoded.
>> struct vgic_irq_rank *(struct vcpu *v, unsigned int irq)
>> {
>>     return vgic_rank_offset(v, 8, irq, DABT_WORD);
>> }
>> This function works ok for GIC v2. But this cannot be used for
>> GICv3 to access registers like IROUTER which are u64. The rank
>> calcuation goes wrong and there by takes wrong rank lock.
> This sounds to me like a bug which should be fixed. A rank is just a
> group of 32 consecutive IRQs and their associated register values, it
> shouldn't matter whether those registers are 8-, 16-, 32- or 64-bits.

 Now I think of creating a callback to return the right rank for given irq
based on v2 or v3. This will fix and keep the old code intact.

> Now, if we have registers which aren't associated with a bank of
> registers, or which cross between banks then we have a problem, but I
> don't think that is the case with IROUTER, is it?
> (I'll let Stefano comment on the rest, since he understands the
> target/inject stuff better than I)
> Ian.

Xen-devel mailing list



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