Topic: Intel Bay Trail fully supported?

Hello,

I am testing Pianoteq 5 (trial) on a fanless notebook at the moment, based on a 7.5 Watt Intel N2930.

This 64-bit-Quadcore has a frequency of 1.83 GHz with max. bursts of 2.16 GHz, but Pianoteq shows "CPU frequency 2600 MHz". This is impossible by specification, although the CPU identification by Pianoteq seems to be correct:

Intel(R) Celeron(R) CPU N2930 @ 1.83GHz, M7/S8/F6, x4

What goes wrong there?

The background of my question is, that with the Debian Realtime-kernel 'linux-image-3.14-1-rt-amd64' Pianoteq is unusable on that new platform (heavy breaks and outages).

I have the standard options in my limits.conf, as written in your  README_LINUX.txt:

     @audio - rtprio 90
     @audio - nice -10
     @audio - memlock 500000

The strange thing is, that the standard kernel (without PREEMPT_RT) works much better in the otherwise unchanged environment, which is highly unexpected for me. It is the 'linux-image-3.14-1-amd64'. For comparison I booted both kernels alternatively on Debian (jessie).

Are there any known issues with this new Bay Trail and the 3.14 rt-Kernels? Is Bay Trail fully supported by PTQ?

I am a happy user of Pianoteq since 3.x and always had best results with the realtime-kernels in the past on several other Intel- and AMD-CPUs.

Any ideas?

Last edited by groovy (01-07-2014 01:03)

Re: Intel Bay Trail fully supported?

While Intel greatly improved the floating point performance for Bay Trail (Pianoteq, games, media encoding) over previous generation Atoms, it still is dog slow for integer work.  We bought an 8-core 2.6ghz Bay Trail to replace a 1.6ghz Core 2 Duo for network services & VM hosting ... and it turned out to be twice as slow.  So using a RT kernel with Bay Trail in effect continually interrupts relatively fast floating point operations for Pianoteq with dog slow task management integer operations.

If no other CPU intensive app runs while Pianoteq is, there's no purpose of using a RT kernel.  It would be better to use a regular kernel and increase the priority of Pianoteq so no other process interrupts it.

Re: Intel Bay Trail fully supported?

Hmh, if a Bay Trail like Intel N2930 is "slow for integer work", why is there more integer work, when using the RT kernel than with the standard non-RT kernel?? Is the "task management" not the same, when the system environment just differs in the used kernel?

With the standard kernel I can achieve a Performance Index of 20 with my preferred Parameters (which is great for a fanless budget system). Under the same conditions the RT kernel has total dropouts for a few seconds every few seconds.

I guess I will end up using the standard kernel and hope, that I get zero drop-outs (most important) and latency far under 10 ms with it.

Thanks for your help.

Re: Intel Bay Trail fully supported?

groovy wrote:

Hmh, if a Bay Trail like Intel N2930 is "slow for integer work", why is there more integer work, when using the RT kernel than with the standard non-RT kernel?? Is the "task management" not the same, when the system environment just differs in the used kernel?

And what do you think is doing the "task management"? Exactly. In other words: the kernel is the most central part of a OS. It is the thing that makes multi-tasking possible, and it is actually the thing that implements it. The kernel decides when and if a task is run. It has the ultimate power. User-space processes can only ask nicely.

Realtime isn't about efficiency. It isn't even about lower latencies. It is about predictability. This means that in a realtime operating system an application gets the same slices of CPU time in a very regular spacing: you can therefore always calculate timing from CPU cycles of the program, at least up to a guaranteed precision. In other words: a realtime environment "promises" your program to run it very regularly and without waiting periods outside certain boundaries.

A modern multitasking operating system, like Linux, Windows or Mac OS, is no realtime system. That means that the kernel (sic!) can decide to make an application wait for a longer time when something 'more important' has come up, e.g. an IO operation. It also will usually lower an application's priority when it hogs much CPU time, so that background processes at least get a chance. If an application finds that it has nothing more to do, it can tell the kernel 'going to sleep now' and the kernel will immediately reschedule the allotted CPU cycles to other applications. This is called 'preemption'.

All these tricks improve efficiency and throughput. They come, however, at a price, and that is occasional latency. Usually things will be very snappy, but from time to time an application might even 'hang' for maybe 50 or 100ms. (Such long latencies are rather unusual, however.) The user will normally not notice this, so it is a good bargain. Now when you want to do audio processing with exceedingly low latencies, things get tricky. This is the reason you can configure buffer sizes in Pianoteq: there is a certain amount of 'jitter' in the scheduling, and the application has to compensate for it by buffering. This increases latency and decreases load. The smaller the buffer size is, the more often the application has to do IO and the more often the OS has to do switching, effectively increasing the load. And when buffers are too small, you get the telltale audio dropouts.

The Linux RT patches as found e.g. in Ubuntu first and foremost make the Linux kernel itself preemptible. That is, the kernel can actually decide to stop an operation and give control back to applications. This makes things more "even" in terms of timing, improving realtime behaviour (although the Linux kernel will probably never be able to fulfill 'hard' realtime constraints). Another part of the patch is called the low-latency patch which more or less chances the scheduling behaviour: it runs more often.

All the changes in RT kernels mean than the kernel switches more often between applications (and itself), and more evenly. This smoothes timing, making latency spikes rarer and smaller. However, it has a price: the efficiency of that kernel is... bad. Very bad. Which means: if you have lots of computing power to spare and are not IO-limited in what you want to do (and audio processing on a fast computer meets these criteria), you can drastically reduce the minimal latency, although you will pay the price in terms of decreased efficiency and thus increased CPU load.

On a slower system running only a single application however, the RT patch is therefore actually detrimental, as Mossy described. Your best bet in that scenario is: run a normal kernel. Maybe increase buffer size a bit. Live with slightly higher latency. Don't run anything in the background.

Last edited by kalessin (01-07-2014 15:18)
Pianoteq 6 Standard (Steinway D&B, Grotrian, Petrof, Steingraeber, Bechstein, Blüthner, K2, YC5, U4, Kremsegg 1&2, Karsten, Electric, Hohner)

Re: Intel Bay Trail fully supported?

groovy wrote:

This 64-bit-Quadcore has a frequency of 1.83 GHz with max. bursts of 2.16 GHz, but Pianoteq shows "CPU frequency 2600 MHz". This is impossible by specification, although the CPU identification by Pianoteq seems to be correct:

It is getting the frequency information from these files:

/sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_max_freq
/sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

and uses /proc/cpuinfo as a fallback

Re: Intel Bay Trail fully supported?

Hi,

kalessin wrote:

And what do you think is doing the "task management"?

it was a quote, and obviously I misunderstood it. I meant all system-activities and running processes around the running Pianoteq should be quite the same for both kernels. I have no network activities, no virtual machines (VM), no significant disk I/O (and when, it is a SSD) and no "integer operations"(that I am aware of), that should hog Pianoteq so drastic, as observed. What integer operations are meant? Can I stop them somehow?

Thanks for your profound knowledge, so I quote it here fully again (with some questions):

kalessin wrote:

In other words: the kernel is the most central part of a OS. It is the thing that makes multi-tasking possible, and it is actually the thing that implements it. The kernel decides when and if a task is run. It has the ultimate power. User-space processes can only ask nicely.

Realtime isn't about efficiency. It isn't even about lower latencies. It is about predictability. This means that in a realtime operating system an application gets the same slices of CPU time in a very regular spacing: you can therefore always calculate timing from CPU cycles of the program, at least up to a guaranteed precision. In other words: a realtime environment "promises" your program to run it very regularly and without waiting periods outside certain boundaries.

A modern multitasking operating system, like Linux, Windows or Mac OS, is no realtime system. That means that the kernel (sic!) can decide to make an application wait for a longer time when something 'more important' has come up, e.g. an IO operation. It also will usually lower an application's priority when it hogs much CPU time, so that background processes at least get a chance. If an application finds that it has nothing more to do, it can tell the kernel 'going to sleep now' and the kernel will immediately reschedule the allotted CPU cycles to other applications. This is called 'preemption'.

All these tricks improve efficiency and throughput. They come, however, at a price, and that is occasional latency. Usually things will be very snappy, but from time to time an application might even 'hang' for maybe 50 or 100ms. (Such long latencies are rather unusual, however.) The user will normally not notice this, so it is a good bargain. Now when you want to do audio processing with exceedingly low latencies, things get tricky. This is the reason you can configure buffer sizes in Pianoteq: there is a certain amount of 'jitter' in the scheduling, and the application has to compensate for it by buffering. This increases latency and decreases load. The smaller the buffer size is, the more often the application has to do IO and the more often the OS has to do switching, effectively increasing the load. And when buffers are too small, you get the telltale audio dropouts.

The Linux RT patches as found e.g. in Ubuntu first and foremost make the Linux kernel itself preemptible. That is, the kernel can actually decide to stop an operation and give control back to applications.
This makes things more "even" in terms of timing, improving realtime behaviour (although the Linux kernel will probably never be able to fulfill 'hard' realtime constraints). Another part of the patch is called the low-latency patch which more or less chances the scheduling behaviour: it runs more often.

All the changes in RT kernels mean than the kernel switches more often between applications (and itself), and more evenly. This smoothes timing, making latency spikes rarer and smaller. However, it has a price: the efficiency of that kernel is... bad. Very bad. Which means: if you have lots of computing power to spare and are not IO-limited in what you want to do (and audio processing on a fast computer meets these criteria), you can drastically reduce the minimal latency, although you will pay the price in terms of decreased efficiency and thus increased CPU load.

... in my simple words: To do all those tricks, my computer comes under heavy load, which becomes so high, that all those tricks get worthless . It just gets overloaded and *predictable* stutters

On a slower system running only a single application however, the RT patch is therefore actually detrimental, as Mossy described. Your best bet in that scenario is: run a normal kernel. Maybe increase buffer size a bit. Live with slightly higher latency. Don't run anything in the background.

... thanks for coming to practical tips at the end. I will kick off the RT kernel and try to tweak the system with the standard kernel.

A good prove could be, if the named 3.14 RT-kernel runs flawless on system, which have a more powerful CPU than a N2930.

Thank you.

Re: Intel Bay Trail fully supported?

julien wrote:
groovy wrote:

This 64-bit-Quadcore has a frequency of 1.83 GHz with max. bursts of 2.16 GHz, but Pianoteq shows "CPU frequency 2600 MHz". This is impossible by specification, although the CPU identification by Pianoteq seems to be correct:

It is getting the frequency information from these files:

/sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_max_freq
/sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

and uses /proc/cpuinfo as a fallback

Hello julien,

ah, ok thanks! But one of your files for the current frequency has another name on my system:
cpuinfo_cur_freq instead of your scaling_cur_freq. Just a typo?

# ls -la /sys/devices/system/cpu/cpu0/cpufreq/
total 0
drwxr-xr-x 2 root root    0 Jul  1 18:40 .
drwxr-xr-x 8 root root    0 Jul  1 18:35 ..
-r--r--r-- 1 root root 4096 Jul  1 18:39 affected_cpus
-r-------- 1 root root 4096 Jul  1 18:39 cpuinfo_cur_freq
-r--r--r-- 1 root root 4096 Jul  1 18:38 cpuinfo_max_freq
-r--r--r-- 1 root root 4096 Jul  1 18:39 cpuinfo_min_freq
-r--r--r-- 1 root root 4096 Jul  1 18:39 cpuinfo_transition_latency
-r--r--r-- 1 root root 4096 Jul  1 18:39 related_cpus
-r--r--r-- 1 root root 4096 Jul  1 18:35 scaling_available_governors
-r--r--r-- 1 root root 4096 Jul  1 18:39 scaling_driver
-rw-r--r-- 1 root root 4096 Jul  1 18:35 scaling_governor
-rw-r--r-- 1 root root 4096 Jul  1 18:39 scaling_max_freq
-rw-r--r-- 1 root root 4096 Jul  1 18:39 scaling_min_freq
-rw-r--r-- 1 root root 4096 Jul  1 18:39 scaling_setspeed

# cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_max_freq
2600000
2600000
2600000
2600000

# cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq
599843
600015
600015
600015

I watched the scaling  and it moves between 600 MHz and 2600 MHz. But wait ... 2.60 GHz, how can that be??? The max burst frequency of the N2930 is just 2.16 GHz!

http://ark.intel.com/de/products/81073/...o-2_16-GHz

Very strange ... specified with max. 2.16 GHz, but running with 2.60 GHz ?!

Re: Intel Bay Trail fully supported?

Hello julien,

I have a few more infos for you, eventually helpful:

There are indeed differences in the cpufreq files. On an old Debian wheezy with 3.2.x-Kernel your scaling_cur_freq exists and it seems to contain the second value, that is refreshed in the Perf Window. Example-view: 'CPU frequency 800MHz ... 2001MHz'. This old core2duo has the scaling_driver 'acpi-cpufreq'.

The new Bay Trail celeron with 3.14.x-Kernel on the other hand does not have this file 'scaling_cur_freq'. Maybe due to the new scaling_driver 'intel_pstate'. As far as I know, this is some new Intel powermanagement paradigma. The Perf Window shows always just *one* value. Example-view: 'CPU frequency 2602MHz'. Bay Trail testet with Pianoteq 5 (Trial).

Cheers

Re: Intel Bay Trail fully supported?

groovy: on the same machine?

http://soundcloud.com/delt01
Pianoteq 5 STD+blüthner, Renoise 3 • Roland FP-4F + M-Audio Keystation 88es
Intel i5@3.4GHz, 16GB • Linux Mint xfce 64bit

Re: Intel Bay Trail fully supported?

groovy wrote:

The new Bay Trail celeron with 3.14.x-Kernel on the other hand does not have this file 'scaling_cur_freq'. Maybe due to the new scaling_driver 'intel_pstate'.

It looks like you are right: https://bugzilla.kernel.org/show_bug.cgi?id=57141 . So right now there is no convenient way to read the cpu freq on linux.. scaling_cur_freq does not exist with the intel_pstate governor, and cpuinfo_cur_freq can only be read by root. That's a bit sad.

Re: Intel Bay Trail fully supported?

groovy wrote:

... in my simple words: To do all those tricks, my computer comes under heavy load, which becomes so high, that all those tricks get worthless . It just gets overloaded and *predictable* stutters

Precisely. The realtime patches mean that the kernel actually does a lot more things a lot more often, and this increases the overhead considerably. And when the machine is not very fast, the increased overhead can result in effectively overloading the machine. It could even be that the 'apparent' CPU load is not that high, since kernel overhead is tricky to measure anyway... so it might not even look like the machine is under that heavy a load. When efficiency is important, the normal desktop kernel would be a better bet. The RT kernel is great when you pair it with a powerful machine: then you can use it to really minimise latency.

Last edited by kalessin (01-07-2014 22:43)
Pianoteq 6 Standard (Steinway D&B, Grotrian, Petrof, Steingraeber, Bechstein, Blüthner, K2, YC5, U4, Kremsegg 1&2, Karsten, Electric, Hohner)

Re: Intel Bay Trail fully supported?

delt wrote:

groovy: on the same machine?

No, the first one an old core2duo from Lenovo and the second one a new celeron N2930 ("Bay Trail") from Acer.

Re: Intel Bay Trail fully supported?

julien wrote:
groovy wrote:

The new Bay Trail celeron with 3.14.x-Kernel on the other hand does not have this file 'scaling_cur_freq'. Maybe due to the new scaling_driver 'intel_pstate'.

It looks like you are right: https://bugzilla.kernel.org/show_bug.cgi?id=57141 . So right now there is no convenient way to read the cpu freq on linux.. scaling_cur_freq does not exist with the intel_pstate governor, and cpuinfo_cur_freq can only be read by root. That's a bit sad.

Do not many modern CPUs use intel_pstate nowadays? I remember at least I saw this on a Samsung Notebook with Intel i5 ivy-bridge. If these internal frequency scalings are not so simple, as in the past any longer, it is maybe not so useful to show it in the frontend any longer. But the most important is, whether this has an hidden negative impact on the RT capabilities or not. I hope not ...

Re: Intel Bay Trail fully supported?

kalessin wrote:
groovy wrote:

... in my simple words: To do all those tricks, my computer comes under heavy load, which becomes so high, that all those tricks get worthless . It just gets overloaded and *predictable* stutters

Precisely. The realtime patches mean that the kernel actually does a lot more things a lot more often, and this increases the overhead considerably. And when the machine is not very fast, the increased overhead can result in effectively overloading the machine. It could even be that the 'apparent' CPU load is not that high, since kernel overhead is tricky to measure anyway... so it might not even look like the machine is under that heavy a load. When efficiency is important, the normal desktop kernel would be a better bet. The RT kernel is great when you pair it with a powerful machine: then you can use it to really minimise latency.

Sounds plausibel. But even on a weak AMD APU E-350 (1.6 GHz) I had a RT kernel running without any glitches in the past. So it comes unexpected, that a modern Intel Quadcore with 4 x 2.60 GHz (?!) has these massive problems. Ok, thanks for your explanations again, I'll stay tuned ...

Re: Intel Bay Trail fully supported?

groovy wrote:

Sounds plausibel. But even on a weak AMD APU E-350 (1.6 GHz) I had a RT kernel running without any glitches in the past. So it comes unexpected, that a modern Intel Quadcore with 4 x 2.60 GHz (?!) has these massive problems. Ok, thanks for your explanations again, I'll stay tuned ...

Clock speed is only accurate when measuring the same CPU family.  For example, a 2GHz BayTrail faster than a 1.5GHz BayTrail but a 2GHz Pineview Atom is 3X slower.  In additional, you can split up CPU operations into multiple categories -- integer, floating point, SIMD, GPU (now since graphics are integrated in).  A CPU architecture can be fast in one category but slow in others.

Historically, AMD has always been fast in integer + GPU but slow in floating point.  For most people, integer doesn't matter that much -- your browser opens internet websites pretty much the same speed on an ultraslow Atom versus an i7.  On the otherhand, floating point & SIMD shows its hand in games which people notice immediately.

So it seems wrong that "modern" CPUs can be slower than older ones but this is the dilemna facing Intel/AMD.  In the past, each new generation of CPUs would be 30% faster than the previous but they hit a single-threaded performance wall about 5 years ago so the fight has been moved to the bottom where the primary competition is ARM.  As slow as Bay Trail is compared to your classic desktops, ARM chips are even slower so it's all about how to make Bay Trail use even less power to fit into smartphones & tablets.

What this means is the E350 was only been "weak" compared to regular desktop CPUs.  Compared to its competition (Intel Atom line), it was 3X faster but also used 3X more power.  Basically, it's taken Intel 4 generations of Atom CPUs to match the overall performance of the E350 (specific integer/floating point/graphics/simd varying) while keeping the original 5W-8W power profile.  The same story for AMD but from the opposite direction -- 4 generations to keep roughly the same performance while pushing power down (5W for Mullins).

BTW, nice job of explanations, Kalessin.  Good thing I was asleep so you could write all the detailed replies before I saw the followup comments/questions.

Last edited by Mossy (02-07-2014 02:24)

Re: Intel Bay Trail fully supported?

Mossy wrote:
groovy wrote:

Sounds plausibel. But even on a weak AMD APU E-350 (1.6 GHz) I had a RT kernel running without any glitches in the past. So it comes unexpected, that a modern Intel Quadcore with 4 x 2.60 GHz (?!) has these massive problems. Ok, thanks for your explanations again, I'll stay tuned ...

Clock speed is only accurate when measuring the same CPU family.  For example, a 2GHz BayTrail faster than a 1.5GHz BayTrail but a 2GHz Pineview Atom is 3X slower.  In additional, you can split up CPU operations into multiple categories -- integer, floating point, SIMD, GPU (now since graphics are integrated in).  A CPU architecture can be fast in one category but slow in others.

Not to mention cache efficiency and pipelining. Modern CPUs rely heavily e.g. on pipelining: they load a whole string of instructions and try to run as many of them in parallel as possible (therefore even inside a single core you find parallel execution). This speeds up things considerably, since processor instructions can be quite different in terms of complexity (and thus many do not need a 'complete' CPU core to themselves). Context switching (i.e. between kernel and application or between applications) effectively kills the pipeline every time, and some CPUs' performance really sucks when this happens too often. Context switching also causes cache misses, making things worse. Then there is the register state that has to be saved/restored.

Long story short: context switching is trouble for the CPU and takes quite a lot of time. Because of all this, multitasking is a tradeoff: more frequent switching is more 'fair' but reduces efficiency, while less switching is more efficient but increases latency. And some CPUs are more sensitive than others.

Last edited by kalessin (02-07-2014 08:31)
Pianoteq 6 Standard (Steinway D&B, Grotrian, Petrof, Steingraeber, Bechstein, Blüthner, K2, YC5, U4, Kremsegg 1&2, Karsten, Electric, Hohner)

Re: Intel Bay Trail fully supported?

Hi,

I found the bottleneck! Intel_pstate just knows two different "governors" on my platform:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
performance powersave

Default ist 'powersave', but I changed that now quick & dirty with

echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor

Used from /etc/rc.local it is bootfix.

Together with the mainstream kernel 'linux-image-3.14-1-amd64' and ...

/etc/security/limits.conf:
@audio - rtprio 90
@audio - nice -10
@audio - memlock 500000

... I have a crackle-free, low-latency system now.

48000 Hz Sample rate
64 samples Buffer size (1.3 ms)
48 Maximum polyphony
Delay and reverb off
20 Performance index
around 30% Audio load

And the best: No spinning/moving parts in this baytrail netbook!

cheers

Last edited by groovy (03-07-2014 08:10)

Re: Intel Bay Trail fully supported?

Here's a simple shell script i wrote to set the governor to all cores at once. You can easily save this to, say, /usr/bin/governor and then chmod +x that file.

Just running "governor" with no arguments will show you the current governor for each core. Running "governor performance" will set all cores to performance.

#!/bin/sh

cd /sys/devices/system/cpu
gov="$1"

if [ "$gov" = "" ]; then
  for core in cpu?; do
    echo -n "Core ${core} set to "
    cat ${core}/cpufreq/scaling_governor
  done
else
  if [ "`whoami`" != "root" ]; then
    echo "Root access is required for this operation. Trying sudo..."
    exec sudo "$0" "$@"
  fi
  for core in cpu?; do
    echo "Setting core ${core} to ${gov}... "
    echo "$gov" > ${core}/cpufreq/scaling_governor
  done
fi
http://soundcloud.com/delt01
Pianoteq 5 STD+blüthner, Renoise 3 • Roland FP-4F + M-Audio Keystation 88es
Intel i5@3.4GHz, 16GB • Linux Mint xfce 64bit

Re: Intel Bay Trail fully supported?

Wonderful, your script works:

# governor performance
Setting core cpu0 to performance... 
Setting core cpu1 to performance... 
Setting core cpu2 to performance... 
Setting core cpu3 to performance...

# governor
Core cpu0 set to performance
Core cpu1 set to performance
Core cpu2 set to performance
Core cpu3 set to performance

I have placed it in my /etc/rc.local now for autostart.

Thanks a lot, delt!

Re: Intel Bay Trail fully supported?

The governors are software modules so this sounds like whoever is building the Debian RT kernels decided not to include the usual range of governors.

On my Bay Trail server running Fedora 3.14.9-200.fc20.x86_64, I get:

> more /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
> conservative userspace powersave ondemand performance

Re: Intel Bay Trail fully supported?

Hi Mossy,

this is not specific to RT or non-RT Debian-Kernel. Both have this two governors available:

more /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
performance powersave

But there is a difference in usage: With the RT Kernel the scaling_governor is not writable:

# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
bash: echo: write error: Invalid argument

I can only write it with the non-RT Kernel, as described in my previous posting.

What Bay Trail CPU are you running?

Re: Intel Bay Trail fully supported?

I'm using a C2750.  All the governor options are usable.

Strange though -- it appears those governors SHOULD now be gone in Fedora 20 according to this thread:

* https://ask.fedoraproject.org/en/questi...-governor/

It's possible the Supermicro bios has intel_pstate disabled.

Try adding to your RT kernel boot parameters:

* intel_pstate=disable

Re: Intel Bay Trail fully supported?

Glad i could help Mossy

http://soundcloud.com/delt01
Pianoteq 5 STD+blüthner, Renoise 3 • Roland FP-4F + M-Audio Keystation 88es
Intel i5@3.4GHz, 16GB • Linux Mint xfce 64bit

Re: Intel Bay Trail fully supported?

Hello Mossy,

with intel_pstate=disable the kernel falls back to the classical scaling_driver and governor 'ondemand':

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 
acpi-cpufreq

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
userspace conservative powersave ondemand performance

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 
1827000 1826000 1660000 1494000 1328000 1162000 996000 830000 664000 498000

Pianoteq is showing the up and down freq-scalings under Perf>CPU then again.

The huge dropouts with the RT Kernel disappear with this scaling_driver and I'm quite sure, with the acpi-based 'cpufrequtils' it could be tweaked to performance too.

But for now, I'll stay with the standard (non-RT) Kernel and intel_pstate set to performance. It has a very good performance (powertop shows all 4 cores running at 2.2 GHz playing Pianoteq) and acpi-cpufreq seems to be deprecated on intel CPUs.

cheers

Last edited by groovy (05-07-2014 09:58)