Re: [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm2-V0.7.30-2

From: Rui Nuno Capela
Date: Tue Nov 23 2004 - 19:37:05 EST


Ingo Molnar wrote:
>
> * Rui Nuno Capela wrote:
>
>> Yes, there's a non-official patch to jackd from Lee Revell's. Without
>> that you don't get to read the maximum delay from jackd. Sorry. But if
>> you have the patience to rebuild jack, here comes attached the minimal
>> patch for just that.
>
> thx, it applied cleanly to jack-cvs. Here's the 5-minute idle-system test
> again:
>
> ************* SUMMARY RESULT ****************
> Timeout Count . . . . . . . . :( 0)
> XRUN Count . . . . . . . . . : 0
> Delay Count (>spare time) . . : 0
> Delay Count (>1000 usecs) . . : 0
> Delay Maximum . . . . . . . . : 28 usecs
> Cycle Maximum . . . . . . . . : 414 usecs
> Average DSP Load. . . . . . . : 20.6 %
> Average CPU System Load . . . : 11.6 %
> Average CPU User Load . . . . : 8.6 %
> Average CPU Nice Load . . . . : 0.0 %
> Average CPU I/O Wait Load . . : 0.0 %
> Average CPU IRQ Load . . . . : 0.0 %
> Average CPU Soft-IRQ Load . . : 0.0 %
> Average Interrupt Rate . . . : 1671.7 /sec
> Average Context-Switch Rate . : 17003.1 /sec
> *********************************************
>
> but i can reproduce xruns on another, much slower box, using just 3-4
> jack_test clients. The xruns dont seem to be justified, they happen at
> 30-40% CPU utilization already.
>

Now that you're liking, here goes a more contained jackd test-suite (see
attached tarball, jackd_test3.1.tar.gz).

Just launch the provided shell script, from the command line as:

./jack_test3_run.sh [secs] [clients] [ports]

where:

secs - number of seconds to run jackd workload (default = 300)
clients - number of test-clients to run (default = 14)
ports - number of interface ports per client (default = 4)

As before, each client (jack_test3_client) registers the same number of
input and output ports (default is 4ins x 4outs), where each output is the
audio mix of all inputs.

Note that you can breakup the 14 client barrier, as that limit seems to be
related to the maximum number of client ports jackd can handle by default
(128). The jack_test_run.sh script sets this jackd maximum port limit
number as it sees fit, so any number of clients greater than 14 is
allowed, provided there's enough CPU and/or RAM ;)

Now, with the default workload (14 clients * 4 * 4 ports) I'm reaching 60%
of CPU, and a "fair" number of XRUNs on my P4@xxxx laptop, against the
on-board alsa driver (snd-ali5451), while under RT-V0.7.30-2.

Each test run produces a kernel-timestamped log filename with the complete
captured stdout/err. Consolidated results can be produced by feeding
several of those logfiles into the jack_test3_consolidated.awk script,
just like this:

cat *.log | awk -f jack_test3_consolidated.awk


Enjoy.
--
rncbc aka Rui Nuno Capela
rncbc@xxxxxxxxx

Attachment: jack_test3.1.tar.gz
Description: application/gzip-compressed