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

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

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.

-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



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