[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2] gic: drop interrupts enabling on interrupts processing
From: Andrii Anisov <andrii_anisov@xxxxxxxx> This reduces the number of context switches in case we have coming guest interrupts from different sources at a high rate. What is likely for multimedia use-cases. Having irqs unlocked here makes us go through trap path again in case we have a new guest interrupt arrived (even with the same priority, after `desc->handler->end(desc)` in `do_IRQ()`), what is just a processor cycles wasting. We will catch them all in the `gic_interrupt() function loop anyway. And the guest irqs arrival prioritization is meaningless here, it is only effective at guest's level. Signed-off-by: Andrii Anisov <andrii_anisov@xxxxxxxx> --- Changes: in v2: Drop irq enabling for lpi processing as well. --- xen/arch/arm/gic.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c index 6cc7dec..113655a 100644 --- a/xen/arch/arm/gic.c +++ b/xen/arch/arm/gic.c @@ -386,17 +386,13 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_fiq) if ( likely(irq >= 16 && irq < 1020) ) { - local_irq_enable(); isb(); do_IRQ(regs, irq, is_fiq); - local_irq_disable(); } else if ( is_lpi(irq) ) { - local_irq_enable(); isb(); gic_hw_ops->do_LPI(irq); - local_irq_disable(); } else if ( unlikely(irq < 16) ) { -- 2.7.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |