Module: xenomai-3
Branch: stable-3.0.x
Commit: cfa2c51de424cad65a624311a61767582ad7776e
URL:    
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=cfa2c51de424cad65a624311a61767582ad7776e

Author: Jan Kiszka <jan.kis...@siemens.com>
Date:   Fri Jan 26 19:32:00 2018 +0100

cobalt/intr: Move IRQ exit trace point

It can be confusing for people reading a trace when a context switch due
to a wake up in the IRQ handler comes before the handler was left. Move
the exit instrumentation before the schedule, just like we already do in
the clock handler.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>

---

 kernel/cobalt/intr.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/kernel/cobalt/intr.c b/kernel/cobalt/intr.c
index 14dc0b3..fb27a32 100644
--- a/kernel/cobalt/intr.c
+++ b/kernel/cobalt/intr.c
@@ -355,12 +355,12 @@ static void xnintr_vec_handler(unsigned int irq, void 
*cookie)
 out:
        xnstat_exectime_switch(sched, prev);
 
+       trace_cobalt_irq_exit(irq);
+
        if (--sched->inesting == 0) {
                sched->lflags &= ~XNINIRQ;
                xnsched_run();
        }
-
-       trace_cobalt_irq_exit(irq);
 }
 
 /*
@@ -441,12 +441,12 @@ static void xnintr_edge_vec_handler(unsigned int irq, 
void *cookie)
 out:
        xnstat_exectime_switch(sched, prev);
 
+       trace_cobalt_irq_exit(irq);
+
        if (--sched->inesting == 0) {
                sched->lflags &= ~XNINIRQ;
                xnsched_run();
        }
-
-       trace_cobalt_irq_exit(irq);
 }
 
 static inline int xnintr_irq_attach(struct xnintr *intr)


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
https://xenomai.org/mailman/listinfo/xenomai-git

Reply via email to