On Sun, Nov 28, 2004 at 05:42:41PM -0500, William M. Quarles wrote:
A. I'm tired of Red Hat holding back on optimizations. The
architecture
tree/network that RPM consults is kind of screwed up. Not to mention
that it is ridiculous to compile packages for i386 architecture that
will never run on an i386, especially when the developers have dropped
in MMX instrcutions in the assembly anyways, so the i386 designation is
then meaningless.
Those applications should be doing the relevant cpuid checks at runtime
before using them. Fedora supports processors that don't have MMX.
If you have a list of applications that don't do this, file bugs
in bugzilla.
It would be nice if RPM could call compilations for
say pentium-mmx or pentium2 rather than forcing developers to insert
this code manually via assembly
The number of packages using assembler is tiny compared to the
number of applications shipped. And no gcc options are going to
change that for the most part. gcc is getting better all the time,
but hand-written assembler is hard to beat for speed-critical
operations in packages that really need the speed.
B. Red Hat developers were saying before that we need more
optimization
for the Pentium 4 because it is obviously not running as well on i686
optimizations as it could. However, I have yet to see a Pentium 4
optimized Fedora Core kernel come out. Perhaps they're busy debating
about whether to call it pentium4 or i786.
The idea had crossed my mind to ship the 686 kernel as p4 optimised
the last time this discussion came around for benchmarking purposes.
Not around round tuits.
C. If it doesn't hurt and it would probably help, I don't see
what's the
matter with making an Athlon-optimized kernel.
A number of reasons.
- It's one more column in the matrix of supported kernels to worry about.
This may seem insignificant, but it takes quite a while to push
a kernel package through the buildsystem given how many variants
it spits out. On a busy day (like for eg, just before release), it
can take the better part of a day to get packages built.
- The gain just isn't worth it over the 2.4 kernels.
Now that the runtime optimisations get performed in 2.6, theres only
one thing thats missing that would be in an Athlon optimised kernel,
and thats the optimised copy_page/clear_page, which are really only
a win when a lot of data is being copied back/forth between the kernel,
and even then, only under certain usage patterns. I'll be surprised
if this shows up on any real-world application.
- anyone this concerned about that last 1-2% of performance will want
to recompiling their own kernel anyway to disable such things as
highmem support when not needed, or selinux, or 4g4g, or..
And considering the
complaints that I have seen, it would make even more sense to make a
Pentium 4-optimized kernel available even if the Athlon one was not
available.
As above. A seperate kernel is probably overkill.
Compiling the 686 kernel with gcc tunings for p4 (but no instructions)
might make sense however.
Dave