This paper shows how the author managed to bring low-latency while
maintaining good performance to the Linux kernel.
Using commodity Operating Systems enables to take advantage of the
existing applications and APIs, but some work needs to be done when
real-time is needed.
The author first shows that three points need high efficiency to get
low-latency : timers, kernel preemption and scheduler.
The second part of the article details the solutions implemented in
Time-Sensitive Linux (TSL) : firm timers, reduction of the size of the
non-preemptable parts of the kernel and implementation of a
proportion-period and a priority-based scheduler.
Stress tests are then made to observe the implications of these
modifications. A significantly lower latency is observed, and the
overhead introduced is low enough to be ignored in most applications.
This article shows how it is possible to use classical Operating Systems
with real-time constraints, and provides good hints on the parts of the
kernel that have to be modified.
However, I think that some comparisons with other real-time OSs should
have been provided. The reader should not be assumed to be familiar with
the performance of RT kernels, and I think it would have eased the
appreciation of the author's work and the usability of the modified
kernel in real-world situations.
The author also mentions patches to the Linux kernel that were used as
part of his work. I think the implications of these modifications should
have been explained better, and how his own modifications interfere with
these patches.
I found this article very interesting because I think it gave me strong
insights of the areas of a kernel that need to be highly efficient for
real-time applications.
As Operating Systems and applications become more and more complex, I
think the approach described here consisting in using commodity OSs for
real-time will become more and more important. This is far easier with
an open system such as Linux than with proprietary OSs.
However, the lack of extensive comparisons with RT kernels does not
validate the usability of this approach in real-world situations, and
the low number of results (47) when searching "Time Sensitive Linux" on
Google seems to indicate that it has not been extensively used since 2002.