Fedora 18 Fails At ARM Wrestling Arch, Ubuntu, Linaro
Phoronix: Fedora 18 Fails At ARM Wrestling Arch, Ubuntu, Linaro
Fedora 18 was officially released this week for x86/x86_64, but the ARM version of Fedora 18 "Spherical Cow" is still under development. Fedora 18 for ARM went into beta last week and since then benchmarks were carried out comparing Spherical Cow on ARM to other popular ARM Linux distributions.
The results are consistent throughout. There must be some simple explanation.
In all likelihood, there are many little tweaks that are collectively responsible. If I had to guess, I would assume that Ubuntu inherited the Linaro improvements. I would expect Linaro to focus in these core areas:
Patching code to remove the necessity of -fno-strict-aliasing. This uses a clever hack to avoid the need for the compiler to deliberately generate slow code because of the pointer aliasing problem. This is moderately difficult to do in userland and a nightmare to do in the kernel.
Link Time Optimization. This enables interprocedural optimizations to be done accross all code in use by a program, which is an area where there is a fair amount of overhead to shave. I have heard of Gentoo users attempting it in userland with a fair degree of success. There was a report of this being done in the kernel, which should provide a fairly significant performance gain in some workloads. I would not be surprised if this technique has been deployed by Linaro, with Ubuntu inheriting it.
Improved compiler optimization passes. This can yield system-wide improvements, but is very difficult to do well. I know that Linaro does these and has gained at least a small performance boost from it in the past. As far as I know, upstream GCC can be slow at merging such improvements. That is likely because deciding what changes are good and what are bad is fairly difficult problem. No one cares how fast binaries are if they segfault.
Cacheline optimizations. This can prevent page faults that require expensive trips to memory. The main place to do this would be in libc's malloc, but there are some other places where this can be done.
If Michael wanted to analyze the reason why Ubuntu seems to outperform Fedora in every situations, he could run benchmaks in the following chroot environments:
A Ubuntu chroot on Ubuntu
A Fedora chroot on Ubuntu
A Ubuntu chroot on Fedora.
A Fedora chroot on Fedora
That would isolate the kernel from the userland and help narrow where to look for the origin of these improvements. However, I do not expect this to happen. That would mean doing the analysis necessary to make the information in his benchmarks useful by explaining why it is the way it is and how it can improve, which Michael never does. That is a shame because some of the investigations that Michael could be doing would inform users of tweaks that could be beneficial. The most obvious of which is setting Nouveau to run GPUs at stock clocks instead of the lowest speed setting when playing games.
He does accept guest articles, if you were to perform such analysis
Michael earns a living doing this. The Fedora developers earn a living from RedHat. Doing what you suggest would be doing other people's jobs for them at the expense of time that could be spent on Gentoo. Why would I want to do that?