Philippe Gerum wrote:
Philippe Gerum wrote:
Anders Blomdell wrote:
When trying to run Xenomai on PowerPC with OpenPIC, I have (finally)
found that interrupt latency is much improved with the following patch:
--- arch/ppc/syslib/open_pic.c~ 2006-01-08 03:15:24.000000000 +0100
+++ arch/ppc/syslib/open_pic.c 2006-02-07 16:56:14.000000000 +0100
@@ -820,7 +820,7 @@
*/
static void openpic_ack_irq(unsigned int irq_nr)
{
-#ifdef __SLOW_VERSION__
+#if defined(__SLOW_VERSION__) || defined(CONFIG_IPIPE)
openpic_disable_irq(irq_nr);
openpic_eoi();
#else
@@ -831,7 +831,7 @@
static void openpic_end_irq(unsigned int irq_nr)
{
-#ifdef __SLOW_VERSION__
+#if defined(__SLOW_VERSION__) || defined(CONFIG_IPIPE)
if (!(irq_desc[irq_nr].status & (IRQ_DISABLED|IRQ_INPROGRESS))
&& irq_desc[irq_nr].action)
openpic_enable_irq(irq_nr);
The reason for this, is that the fast version doesn't call
openpic_eoi until the interrupt is ended, which means that all
RT-interrupts are delayed by a pending Linux interrupt.
Gasp. Will check on my Icecube asap, thanks (a lot).
The mpc52xx is using its own version of PIC management - which should
not induce such delay on eoi, so I cannot experiment this change yet.
However, I've revisited your patch so that the OpenPIC code always sends
eoi in fast mode, regardless of the interrupt polarity. Could you try
the patch below and let me know of the outcome? TIA,
Ok. Drop this to /dev/null. I've misread the original ->ack() code, and as you
pointed out, this patch would not work. -ENOBRAIN again.
--- arch/ppc/syslib/open_pic.c~ 2005-10-28 02:02:08.000000000 +0200
+++ arch/ppc/syslib/open_pic.c 2006-02-08 10:30:22.000000000 +0100
@@ -824,7 +824,9 @@
openpic_disable_irq(irq_nr);
openpic_eoi();
#else
+#ifndef CONFIG_IPIPE
if ((irq_desc[irq_nr].status & IRQ_LEVEL) == 0)
+#endif /* CONFIG_IPIPE */
openpic_eoi();
#endif
}
@@ -836,8 +838,10 @@
&& irq_desc[irq_nr].action)
openpic_enable_irq(irq_nr);
#else
+#ifndef CONFIG_IPIPE
if ((irq_desc[irq_nr].status & IRQ_LEVEL) != 0)
openpic_eoi();
+#endif /* CONFIG_IPIPE */
#endif
}
--
Philippe.
_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core