what is the -RT tree

Ingo Molnar
2005-05-30T12:11:57Z

* Andi Kleen <ak@muc.de> wrote:

> > > > Yes, as Ingo stated many times, addition cond_resched() to
> > > > might_sleep() does achieve the "usable" latencies -- and
> > > > obviously that's hacky.
> > >
> > > But it's the only way to get practial(1) low latency benefit to
> > > everybody [...]
> > > (1) = not necessarily provable, but good enough at least for jack
> > > et.al.
> >
> > FYI, to get good latencies for jack you currently need the -RT tree and
> > CONFIG_PREEMPT. (see Lee Revell's and Rui Nuno Capela's extensive tests)
>
> Yeah, but you did a lot of (often unrelated to rt preempt) latency
> fixes in RT that are not yet merged into mainline. When they are all
> merged things might be very different. And then there can be probably
> more fixes.

your argument above == cond_resched() in might_sleep() [ == VP ] is the
only way to get practical (e.g. jack) latencies.

my argument == i do agree that -VP is a step forward from PREEMPT_NONE
(i'd not have written and released it otherwise), but is
by no means enough for jack. You need at least the -RT
tree + CONFIG_PREEMPT to achieve good jack latencies.

in that sense your further argument that the -RT tree has more latency
related fixes has no relevance to this point: VP by itself is _not
enough_, having more latency fixes in the -RT tree (which mostly improve
CONFIG_PREEMPT and PREEMPT_RT) does not make VP any better of a solution
for jack's purposes.

[ and yes, those other latency fixes are not necessarily directly
related to the PREEMPT_RT feature, because the -RT tree is a
collection of latency related fixes and features, of which PREEMPT_RT
is the biggest, but not the only one. ]

so my main point still remains: it's wishful thinking to expect the
'standard' ( < CONFIG_PREEMPT) Linux kernel's latencies to improve well
enough for jack.

perhaps there's some misunderstanding wrt. what the -RT tree is. The -RT
tree is a collection of latency related patches and features: it
introduces the VP and PREEMPT_RT features, and it also improves all
preemption models (including CONFIG_PREEMPT). Furthermore, it includes
(in-kernel) features to measure and debug latencies. It's called -RT
because PREEMPT_RT is undoubtedly the 'crown jewel' feature, but that
does not mean it's the only goal of the patchset.

Ingo