MonadLUG meeting notes 14 June 2007

Bill Sconce sconce at in-spec-inc.com
Fri Jun 15 12:32:18 EDT 2007


The June meeting of CentraLUG, the Peterborough chapter of
the Greater New Hampshire Users Groups, was held last night,
Thursday, 14 June 2007, Charlie Farinella presiding.

Our presenter was Ed Haynes, with Wind River in Nashua.
Wind River is one of the organizations which (as I remember
them) a few years ago was confronted with a business-model
choice by the rise of Linux.  More on that later.  The
meeting was all about Linux, realtime, and Linux in realtime.

Realtime: when a computer has to deliver a result in a
predictable amount of time.  In some cases the amount of time
may be short, so "realtime" may mean "fast response".  In
many important cases, however, the amount of time may need
to be *guaranteed* -- even to the point of being less than
"fastest" response.  The keyword is "deterministic".

"Fastest" response 99.99% of the time may not cut it if just
one response is late, or if just one interrupt gets lost.  Some
applications (hmmm... a rocket engine?) might fail totally if
that one late response or lost interrupt happens at the wrong
time -- even if the application has run for hundreds or
thousands of hours with no apparent problems.

Ed explained that Linux isn't (by design) a realtime operating
system.  And demonstrated it!

He had a RHEL host system running on a laptop, a target box
named "fred", a Via 7 x86 embedded system running Linux in
several flavors (it picks up its kernel via PXE boot, much
like a thin client does in an LTSP environment), and even
a projector connected to the laptop -- which worked.  
(Amazing. :)

Ed showed us "fred" running a 2.6.14 kernel, pushed by the
host laptop to measure interrupt response time, first running
undisturbed and then running while being subjected to a
PING flood.  Undisturbed, the response times were pretty
respectable, with a distribution, a "jitter" (if my notes
are right) of something like plus or minus 14 microseconds.
But when subjected to the PING flood the responses went all
over the place: the jitter increased to as much as 512
microseconds.  What optimizes throughput in a general-
purpose operating system can make realtime performance
completely unacceptable.  Poor "fred".

Ed then loaded "fred" with a Linux kernel which incorporates
Andrew Morton's PREEMPT-RT patches, as updated (and contributed
back to the community) by Wind River.  Unloaded response time
was essentially unchanged, as was jitter at about 14 us.
But now the PING flood caused the jitter to increase only to
35 us or so.  Watching these effects on a real system was
an eye-opening education.  (Note that PREEMPT-RT improves
jitter, but that Linux still cannot be characterized as
deterministic.  Good enough for many tasks, no doubt, but
I still wouldn't want Linux running my autopilot.)

There's another approach, which Ed described but did not
demonstrate: running Linux on top of a small, deterministic
realtime kernel.  In Wind River's hands this is partly GPL,
partly proprietary.

There were a number of small discussions after the presentation
(and a QUIZ! :).  We complimented Ed on giving a commercial-
free presentation on an important Linux topic, and I especially
enjoyed hearing about Wind River's success with embracing
Linux and the free software/make money by support business
model.  Not every firm confronted by customer demand for
support of free software has figured out how to make good
business with it.

A delightful evening.  Thank you, Ed!

And congratulations to Charlie: a dynamite program.


Respectfully submitted,

-Bill


More information about the gnhlug-discuss mailing list