On 09/02/18 14:39, Andre Przywara wrote:
The Xen core code requires an interrupt controller emulation to implement
arch_move_irqs(), to move the affinity of an hardware mapped virtual IRQ
to another core. In the moment we don't implement this
physical-follow-virtual regime in our new VGIC, so just provide an empty
stub implementation to make the linker happy.
physical-follow-virtual is a must feature for the new vGIC. This has
shown better interrupt latency.
Similarily vgic_clear_pending_irqs() is required by the ARM code,
although it is suspected that it is actually not necessary. Go with a
stub for now.
Signed-off-by: Andre Przywara <andre.przyw...@linaro.org>
xen/arch/arm/vgic/vgic.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c
index d91028bd43..77fa756329 100644
@@ -770,6 +770,19 @@ void gic_dump_vgic_info(struct vcpu *v)
irq->active ? "" : "not ", irq->enabled ? "" : "not ");
+void vgic_clear_pending_irqs(struct vcpu *v)
+ * TODO: It is unclear whether we really need this, so we might instead
+ * remove it on the caller site.
I remember some issue with the current vGIC when not removing pending
interrupts on PSCI CPU ON. But that was a while ago. I will have another
try and see if we can drop it.
+void arch_move_irqs(struct vcpu *v)
+ /* TODO: implement this (?) */
Here you would need to go through the interrupt and modify the affinity
of the physical IRQs routed to that vCPU.
struct irq_desc *vgic_get_hw_irq_desc(struct domain *d, struct vcpu *v,
unsigned int virq)
Xen-devel mailing list