Hi Joël,
see remarks in the context below.
Best regards,
Wolfgang
On 17.07.2015 22:05, Joël Krähemann wrote:
Hi all,
My name is Joël Krähemann, I'm developing:
http://gsequencer.org
and I'm using:
Linux debian 4.0.5 #1 SMP PREEMPT Sat Jul 11 16:32:49 CEST 2015 x86_64 GNU/Linux
From the output it seems that the kernel you are using is NOT a RT
kernel (otherwise "uname -v" should say "#1 SMP PREEMPT RT ..."). If you
want to use a RT kernel you should build the kernel with PREEMPT_RT_FULL
defined.
For now I encounter on my system performance problems at a load of 30
to 40 % system load, all 8 virtual cpu's have same average load.
What do you mean when you talk about "performance problems"? How do they
manifest?
* `chrt` to higher priority doesn't give wished throughput.
As you certainly know in general a RT kernel has worse throughput (but
better response times / lower latencies for time critical threads) than
a generic kernel.
* `taskset` has ff as default.
* `cpufreq-set -g performance` brings a little improvement for first seconds
This is my CPU:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 58
Model name: Intel(R) Core(TM) i7-3740QM CPU @ 2.70GHz
Stepping: 9
CPU MHz: 3275.648
CPU max MHz: 3700.0000
CPU min MHz: 1200.0000
BogoMIPS: 5387.58
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
NUMA node0 CPU(s): 0-7
GSequencer uses many threads but doesn't stay in realtime. What am I
doing wrong? Or how to gain more Performance out of the system?
How do you define performance? If you want more throughput then try a
generic kernel. If you want shorter response times (lower latencies) for
selected RT threads than use a RT kernel and tweak the thread priorities
of the respective user and kernel threads in the processing chain. Make
sure that you don't get priority inversion by using improper RT prio
assignment, e.g. participating IRQ threads from kernel should have
higher or same RT prio than threads processing data delivered by those
IRQ threads. A good example for audio applications is
http://subversion.ffado.org/wiki/IrqPriorities which shows priority
settings for JACK audio applications.
I could imagine on my code side that vary frequency segmentation would
bring better throughput. By modeifing AGS_THREAD_DEFAULT_JIFFIE,
AGS_THREAD_MAX_PRECISION and related.
But for now I search for documentation about linux kernel performance counters.
Best regards,
Joël Krähemann
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html