Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.4

From: Rui Nuno Capela
Date: Thu Oct 28 2004 - 03:33:57 EST


Ingo Molnar wrote:
>
> * Rui Nuno Capela wrote:
>
>> >> ok, i've uploaded RT-V0.4.2 which has more of the same: it fixes
>> >> other missed preemption checks. Does it make any difference to the
>> >> xruns on your UP box?
>> >
>> > uploaded RT-V0.4.3 - there was a thinko in the latency tracer that
>> > caused early boot failures.
>> >
>>
>> Yes, the xrun rate has decreased, slightly. RT-V0.4.3 is now ranking
>> under 10 per 5 min (~2/min), with jackd -R -r44100 -p128 -n2,
>> fluidsynth x 6.
>>
>> Better still, but not to par as RT-U3, under the very same conditions.
>
> how much idle time do you have in the RT-U3 and in the RT-V0.4 tests,
> compared? If it's close to 100% then make sure you have the following
> debug options disabled:
>
> # CONFIG_DEBUG_SLAB is not set
> # CONFIG_DEBUG_PREEMPT is not set
> # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
> # CONFIG_PREEMPT_TIMING is not set
> # CONFIG_RWSEM_DEADLOCK_DETECT is not set
> # CONFIG_FRAME_POINTER is not set
> # CONFIG_DEBUG_STACKOVERFLOW is not set
> # CONFIG_DEBUG_STACK_USAGE is not set
> # CONFIG_DEBUG_PAGEALLOC is not set
>
> RWSEM_DEADLOCK, DEBUG_PREEMPT, PREEMPT_TIMING and LATENCY_TRACE are
> especially expensive, so depending on the amount of kernel work done, it
> can make or break the total balance of CPU time used and you could get
> xruns not only due to kernel latencies but purely due to having not
> enough CPU time to generate audio output. (fluidsynth is a software
> audio generator?)
>

As far as nmeter can tell, this a rough cpu usage pattern between RT-U3
and RT-V0.4.3, during my jackd + 6*fluidsynth "benchmark" tests:

cpu usage RT-U3.0 RT-V0.4.3
---------------------------- ---------- ---------
system (kernel) <10% 10%
user 30% 60%
---------------------------- ---------- ---------
total <40% 70%


The following table compares the state between my RT-U3 and RT-V0.4.3
configurations, regarding only the mentioned options:

option RT-U3.0 RT-V0.4.3
---------------------------- ---------- ---------
CONFIG_DEBUG_SLAB n n
CONFIG_DEBUG_PREEMPT y y
CONFIG_DEBUG_SPINLOCK_SLEEP n -
CONFIG_PREEMPT_TIMING n n
CONFIG_RWSEM_DEADLOCK_DETECT - y
CONFIG_FRAME_POINTER y y
CONFIG_DEBUG_STACKOVERFLOW y y
CONFIG_DEBUG_STACK_USAGE n n
CONFIG_DEBUG_PAGEALLOC n n

(dash "-" means that the option is not available in the config).

As you can see, it can only be CONFIG_RWSEM_DEADLOCK_DETECT, being new in
RT-V0.4.3, that is probably affecting on RT-V0.4.3. I'll try to rebuild
and test all over without it, and see if it gets any better.

BBL
--
rncbc aka Rui Nuno Capela
rncbc@xxxxxxxxx


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/