All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] gic: drop interrupts enabling on interrupts processing
@ 2019-05-27  9:29 ` Andrii Anisov
  0 siblings, 0 replies; 27+ messages in thread
From: Andrii Anisov @ 2019-05-27  9:29 UTC (permalink / raw)
  To: xen-devel; +Cc: Julien Grall, Stefano Stabellini, Andrii Anisov

From: Andrii Anisov <andrii_anisov@epam.com>

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@epam.com>
---

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@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply related	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2019-06-11  7:38 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-27  9:29 [PATCH v2] gic: drop interrupts enabling on interrupts processing Andrii Anisov
2019-05-27  9:29 ` [Xen-devel] " Andrii Anisov
2019-05-28 17:07 ` Julien Grall
2019-05-28 17:07   ` [Xen-devel] " Julien Grall
2019-05-29 10:31   ` Andrii Anisov
2019-05-29 10:31     ` [Xen-devel] " Andrii Anisov
2019-05-29 15:32     ` Julien Grall
2019-05-29 15:32       ` [Xen-devel] " Julien Grall
2019-05-30 16:12       ` Andrii Anisov
2019-05-30 16:12         ` [Xen-devel] " Andrii Anisov
2019-05-31 17:11         ` Julien Grall
2019-05-31 17:11           ` [Xen-devel] " Julien Grall
2019-05-31 20:08           ` Stefano Stabellini
2019-05-31 20:08             ` [Xen-devel] " Stefano Stabellini
2019-06-10 15:49           ` Andrii Anisov
2019-06-10 19:51             ` Julien Grall
2019-06-11  7:38               ` Andrii Anisov
2019-05-30 16:14       ` Andrii Anisov
2019-05-30 16:14         ` [Xen-devel] " Andrii Anisov
2019-05-31 17:16         ` Julien Grall
2019-05-31 17:16           ` [Xen-devel] " Julien Grall
2019-05-31 17:28           ` Andre Przywara
2019-05-31 17:28             ` [Xen-devel] " Andre Przywara
2019-05-31 17:25   ` Andre Przywara
2019-05-31 17:25     ` [Xen-devel] " Andre Przywara
2019-05-31 17:54     ` Julien Grall
2019-05-31 17:54       ` [Xen-devel] " Julien Grall

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.