Re: ARM Linux Suitability for Real-time Application

From: Eugeny S. Mints
Date: Wed Jun 22 2005 - 03:57:26 EST

Andrew Lewis wrote:
I have recently been using Linux on the AT91RM9200 as a data concentrator for a small (as yet unreleased) communications application.

In order to run the radio successfully I need to be able to handle interrupts within around 50us, and have interrupts run constantly for between 20us and 200us (mostly at the low end). I would expect there to be three or four of these interrupts every 1000us, probably using about 25% of the CPU power just to manage the radio deck.

This would makeup the real-time control element of the application. If I was writing this on bare metal, I would lock the high level interrupts out to perform communications between the mainline and the interrupt control paths for no more than 10us.


The question is, would I be able to meet these time contraints if I wrote a device driver running under Linux? Especially important is keeping the latency of handling the interrupts below 50us, and not breaking anything by running 200us long interrupts.

I just wanted a general indication that such a driver is possible or impossible before embarking on a more detailed investigation.
The rough answer is that it's impossible with vanilla kernel and possible (as a rough approximation) with Ingo Molnar's real-time patch which includes arm real-time port and hardirq-disable removal feature by Daniel Walker.

All linux real-time related discussions are going on LKML so first of all you might want to use LKML instead arm linux list for all real-time questions (thus I changed list in the header of the message).

As to concrete numbers you are interested in please take a look at "PREEMPT_RT vs I-PIPE: the numbers, part 2" thread on LKML which I believe presents most recent numbers.

The bottom line is that interrupt and preemption latencies for a kernel with RT patch are inbetween 15-150us. But of course even with real-time patch you have to perform _real_ fine tuning of your system to achieve such hard constraints you identified.

Best Regards,
Andrew Lewis

List admin:

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at