Re: [patch] Real-Time Preemption, -RT-2.6.12-rc1-V0.7.41-10

Ingo Molnar
2005-03-30T06:55:13Z

* Lee Revell <rlrevell@joe-job.com> wrote:

> > could you run a bit with tracing disabled (in the .config) on the C3?
> > (but wakeup timing still enabled) It may very well be tracing overhead
> > that makes those latencies that high. Also, we'd thus have some hard
> > data on how much overhead tracing is in such a situation, on that CPU.
>
> I have not left it to run overnight yet with the swappiness set to
> 100, which triggers the biggest latencies as my entire desktop is
> swapped out, but so far it looks like the problem was tracing
> overhead. With timing enabled but tracing disabled the longest
> latency on the C3 so far is 270 usecs.
>
> An important giveaway is that with tracing enabled the same code path
> only triggers ~200 usec latencies on the K7 but ~2ms on the C3. Since
> the longest latency with PREEMPT_DESKTOP is normally more a function
> of memory bandwidth than processor speed, and the machines differ much
> more in the latter, this agrees with the theory that the overhead is
> the problem.

besides cycle overhead, function tracing increases cache footprint - and
with a CPU that has smaller caches (such as the C3) it can tip a loop
over the edge, and can make it cache-trashing, while it would fit into
the cache before. In such a situation the difference can be dramatic.

(on CPUs with larger caches similar artifacts can happen too, but it
needs a 'fatter' loop, which are apparently rarer.)

Ingo