With the soon to be legendary "roadmap" Thomas Gleixner presented at the 2011
Embedded Linux Conference for the PREEMPT_RT patch series [1], people are likely
wondering what that means for projects like The Yocto Project which make the
PREEMPT_RT patch series available as part of a larger integration project.

It is our goal to maintain the linux-yocto recipes and git repositories as
closely aligned with the mainline kernel as possible. This primary goal sets the
schedule for which kernel version will be used as the basis for the next major
release. 0.9 released with 2.6.34, 1.0 with 2.6.37, and 2.6.39 or 40 are likely
to follow. These won't necessarily align with the supported PREEMPT_RT kernel
versions.

We have a few options. First, we could port PREEMPT_RT to whatever the next
kernel version turns out to be. Second, we could release a separate kernel tree
just for RT. Third, we could just not include PREEMPT_RT when the versions do
not align. There is precedent for the first option, and indeed this exactly how
we provide a 2.6.34 PREEMPT_RT tree with 0.9 and 1.0. We took the third option
for 1.0 and the 2.6.37 tree, preferring to stick with the 2.6.34 version for RT
kernels rather than do yet another forward port to 2.6.37, duplicating     much of
Thomas' work toward a 2.6.38 PREEMPT_RT. This is time consuming, error prone,
and doesn't contribute to the overall quality of the PREEMPT_RT patch series as
it is somewhat apart from that which Thomas releases. The second option, a
separate kernel tree, is contrary to another key goal of The Yocto Project,
which is to reduce duplication of effort. A separate kernel tree would require
duplication of the meta branch, and all the bug fixes, security fixes, and
feature sets would have to be applied to each tree.

Going forward, our approach to PREEMPT_RT will be as follows. We will strive to
align with the official PREEMPT_RT releases. When that is not possible, we will
favor skipping RT support in a kernel version or two just as Thomas does with
PREEMPT_RT. In very rare occasions, such as with the 2.6.34 kernel, we may opt
to forward port PREEMPT_RT to align with the current linux-yocto recipe's base
kernel version.