Andrew Lewis wrote:
I have recently been using Linux on the AT91RM9200 as a data
concentrator for a small (as yet unreleased) communications application.
[snip]
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.
[snip]
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
http://redhat.com/~mingo/realtime-preempt/ 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.
Eugeny
Best Regards,
Andrew Lewis
-------------------------------------------------------------------
List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php
Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]