[PlanetCCRMA] Performance degradation with kernel-rt-3.14.17-200.rt9.1.fc20.ccrma.x86_64

Oleg Samarin osamarin68 at gmail.com
Sun Sep 7 03:26:52 PDT 2014


I recompiled kernel-rt-3.14.17 with the latest intel_pstate
driver from
https://github.com/torvalds/linux/blob/16405f98bca8eb39a23b3ce03e241ca19e7af370/drivers/cpufreq/intel_pstate.c
The behaviour rest the same as with intel_pstate from kernel-rt-3.14.17. 

I made more testing.

Under 3.14.17, when I just play GO, jack DSP load becomes 100%, but CPU core speed
leaves 1600-1800 mhz and the sound is terrible. 

Here is a i7z output at that time:

        Core [core-id]  :Actual Freq (Mult.)	  C0%   Halt(C1)%  C3 %   C6 %
        Core 1 [0]:	  2143.82 (21.44x)      31.1    44.8    33.5    2.09
        Core 2 [1]:	  1994.62 (19.95x)      47.9    60.4    10.5       1
        Core 3 [2]:	  2077.24 (20.77x)      34.7    33.2    44.7       1
        Core 4 [3]:	  2284.95 (22.85x)      45.4    29.5    34.3    5.74


If I run mprime torture
test (a tool that loads CPU hard) with 1 single thread, the CPU speed
becomes 4500-4800 mhz, jack dsp load decreases and I can play GO without
any sound problems. It could be a temporary workaround for me.

Here is a i7z output with one mprime thread:

        Core [core-id]  :Actual Freq (Mult.)	  C0%   Halt(C1)%  C3 %   C6 %
        Core 1 [0]:	  4284.18 (42.85x)        31    39.3    20.6       1
        Core 2 [1]:	  4305.80 (43.07x)      30.6      38    22.2       1
        Core 3 [2]:	  4102.73 (41.04x)      98.4       0       0       0
        Core 4 [3]:	  4131.24 (41.32x)      38.2    24.2    28.3       1


echo "100" > /sys/devices/system/cpu/intel_pstate/min_perf_pct increases
CPU does not speed up so much so it cann't be a workaround.

Under 3.12.12 playing GO activates CPU speed up itself, so running
mprime is not necessary.

The i7z output is here:

        Core [core-id]  :Actual Freq (Mult.)	  C0%   Halt(C1)%  C3 %   C6 %
        Core 1 [0]:	  4502.27 (45.02x)	28.8      42    18.8       1
        Core 2 [1]:	  4503.14 (45.03x)	24.7    52.3      14       1
        Core 3 [2]:	  4524.26 (45.24x)	16.1      20    57.5       1
        Core 4 [3]:	  4521.34 (45.21x)	69.8       0    11.9       1

May be the source of the problem is not in intel_pstate, but in the scheduler? 
Seems under 3.12 the most part of jack load belongs to the Core 4 that enforces CPU to increase its frequency, 
but under 3.14 it is spreaded between all cores and their workload is not sufficient for speeding up.

I'd like to port intel_pstate from 3.12.12 to 3.14.17 for checking
whether intel_pstate is an issue, but I couldn't find the rt-3.12.12
source rpm. Where can I get it?

В Сб, 06/09/2014 в 16:28 +0400, Oleg Samarin пишет:
> В Пт, 05/09/2014 в 15:17 -0700, Fernando Lopez-Lezcano пишет:
> > On 09/05/2014 12:35 PM, Oleg Samarin wrote:
> > > Hello!
> > 
> > Hi!,
> > 
> > > I use Fedora 20 with PlanetCCRMA realtime kernel.
> > >
> > > After upgrading the kernel from kernel-rt-3.12.12-300.rt19.1.fc20.ccrma to
> > > the last one - kernel-rt-3.14.17-200.rt9.1.fc20.ccrma, the huge sound
> > > distortion started occurring. When I boot my station with kernel-rt-3.12.12,
> > > everything seems all right.
> > 
> > Did you try to confirm by, for example, looking at the output of top in 
> > both cases? Can you confirm that the cpus are stuck to low frequencies? 
> 
> I use Jack audio stack and can see the DSP load with qjackctl. 
> Every time I can hear audio distortion, qjackctl shows 100% DSP.
> 
> When I just start GrandOrgue, the DSP load is about 15% and top shows
> that GO utilises 19% of CPU. 
> 
> When I start playing with GO under kernel-rt 3.14.17, qjackctl shows
> 100% of DSP load and top shows that GO uses 121 % of CPU and the
> distortion begins. At the same time i7z indicates, that CPU frequency is
> between 1600-1800 MHz.
> 
> The same under kernel-rt 3.12.12 brings about 40-50 % in qjackctl and
> about 60% CPU of GO in top. i7z indicates CPU frequency 4500-4800 MHz.
> 
> 
> > What does /proc/cpuinfo report in your case?
> 
> It is difficult to play GO and capture /proc/cpuinfo at the same time.
> 
> > 
> > > The most probably reason is a bug in intel_pstate driver, that prevents CPU
> > >   speeding up: https://bugzilla.kernel.org/show_bug.cgi?id=70941,  There is a
> > > patch that should solve this problem.
> > 
> > Is your system actually using the pstate_intel driver? If so, what 
> > happens if you try to get all cpus to run as fast as possible:
> > 
> >    echo "100" > /sys/devices/system/cpu/intel_pstate/min_perf_pct
> > 
> > Does that make a difference?
> 
> Yes, it looks better, but the CPU freq (3800-4000 Mhz) is still less
> than under 3.12.12.
> 
> > 
> > > Could you include this patch in the next build of kernel-rt?
> > 
> > Sure, but it would be nice to get more feedback.
> > -- Fernando
> > 
> 





More information about the PlanetCCRMA mailing list