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

Re: [Xen-devel] [PATCH] gic:vgic: avoid excessive conversions

Sorry for the formatting.

On Mon, 19 Nov 2018, 12:04 Andrii Anisov, <andrii.anisov@xxxxxxxxx> wrote:
Hello Julien,

On 16.11.18 19:27, Julien Grall wrote:
>>           if ( !list_empty(&p->inflight) &&
>>                !test_bit(GIC_IRQ_GUEST_VISIBLE, &p->status) )
>> -            gic_raise_guest_irq(v, p->irq, p->lpi_priority);
>> +            gic_raise_guest_irq(v, p);
> The interface is not behaving the same way now. I understand that
> nobody is using the 3 parameters but that's actually a bug with the ITS.
> Because the LPI will not be set with expected priority.
But it is not the issue of the interface, you know. Keeping in mind that
both an inflight and an lr_pending queues are sorted by p->priority, the
field p->lpi_priority looks odd anyway.

You didn't get my point. You removed a parameter without explaining why it is fine. In that context, the caller for LPI is using lpi_priority.

With your change, it is becoming issue with the interface because it may not pass the correct things.

So this not a cleanup and there must be a reason why lpi_priority was passed instead of priority.

>> -extern void gic_raise_guest_irq(struct vcpu *v, unsigned int irq,
>> -        unsigned int priority);
>> -extern void gic_raise_inflight_irq(struct vcpu *v, unsigned int
>> virtual_irq);
>> +extern void gic_raise_guest_irq(struct vcpu *v, struct pending_irq *p);
>> +extern void gic_raise_inflight_irq(struct vcpu *v, struct
>> pending_irq *n);
> That code is not going to compile with the new vGIC as pending_irq
> only exists for the current vGIC.

Yep, I did miss that.

I guess wrapping it with `#ifndef CONFIG_NEW_VGIC` must be enough here.
Those two functions are not used by, nor defined by new-vgic.

Andrii Anisov.

Xen-devel mailing list
Xen-devel mailing list



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