Originally posted by vadimg
View Post
If you so will is the average load of a CPU a lie. It is an artificial number, which was introduced to tell between how much a CPU is running user code and how much kernel code. There is nothing wrong with it. An operating system should leave as much CPU time to the user and only use little for itself. As long as this is the case does the concept of the load average work. Just like nobody blames the clock on the wall for the dinner being late...
There are two, maybe three, problems here. One is with the benchmarks sitting in user space doing little else but to cause a CPU to spend most of its time running kernel code. The other is with the drivers that are sitting in kernel space and probably should have most of their code running in user space. If I am not mistaken then the Nvidia kernel module of the proprietary driver is about 13MBs? Whatever its exact size is, it is a very large kernel module, and I am guessing that it is doing a lot more for a kernel module than it should be doing. The third problem might be an unusual CPU/GPU combination where an expensive and fast CPU is combined with a cheap, slow GPU, which adds to the I/O wait times.
The first problem, the one of the benchmarks, can be solved by choosing the right benchmarks and running them correctly. Making sure a benchmark does not get outsmarted by other software or hardware is a part of this. The second problem can only be solved by the people who write kernel modules. I am guessing it is only a matter of time until we see some changes here. Last, but not least, does one have to question the combination of a slow GPU with a fast CPU when the goal is to get a high frame rate, because GPUs are still a lot cheaper than CPUs are while GPUs do the most work.
So when you take a look at the bigger picture will you see that there are more than the cpu-freq governors and that these are not a problem as these can either be tweaked or set to do nothing (with the "performance" governor). There is even a user space governor for when one wants to control the frequency directly from user space.
Comment