Re: PREEMPT_RT vs I-PIPE: the numbers, part 2

Ingo Molnar
2005-06-22T22:52:38Z

* Karim Yaghmour <karim@opersys.com> wrote:

> > so ... give the -50-12 -RT tree a try and report back the lpptest
> > results you are getting.
>
> First things first, we want to report back that our setup is validated
> before we go onto this one. So we've modified LRTBF to do the
> busy-wait thing.

here's another bug in the way you are testing PREEMPT_RT irq latencies.
Right now you are doing this in lrtbf-0.1a/drivers/par-test.c:

if (request_irq ( PAR_TEST_IRQ,
&par_test_irq_handler,
#if CONFIG_PREEMPT_RT
SA_NODELAY,
#else //!CONFIG_PREEMPT_RT
SA_INTERRUPT,
#endif //PREEMPT_RT

you should set the SA_INTERRUPT flag in the PREEMPT_RT case too! I.e.
the relevant line above should be:

SA_NODELAY | SA_INTERRUPT,

otherwise par_test_irq_handler will run with interrupts enabled, opening
the window for other interrupts to be injected and increasing the
worst-case latency! Take a look at drivers/char/lpptest.c how to do this
properly. Also, double-check that there is no IRQ 7 thread running on
the PREEMPT_RT kernel, to make sure you are measuring irq latencies.

Ingo