From: Heinz Diehl (hd_at_elfie.rhein-neckar.de)
Date: 20. Jan 2000
On Tue Jan 18 2000, Marco Netzker wrote:
> Meine zweite Frage: Kann man den Kernel speziell für den AMD K6-3
> optimieren?
Direkt nicht, aber man kann schon einiges machen.
> Z.B. was Write Allocation und 3DNow! betrifft.
^^^^^^^^^^^^^^^^
3D-Now ist bereits drin, zumindestens zum grossen Teil.
Write-Allocation nicht mit Write-Combining verwechseln,
write-alloc. ist auch im P-Code (ab TSC) schon drin.
> Der Prozessor
> wird ja erkannt, aber der Standard-IDE-Kernel den ich installiert habe
> und der tadellos läuft, ist laut SuSE 6.3 Pentium-optimiert. Da läßt
> sich doch sicher ein Kernel compilieren, der die Prozessorfähigkeiten
> optimal ausnutzt? Hat jemand Erfahrung damit?
Uebersetze den neuen Kernel mit MTRR-Support und trage in einen
der Bootscripte ein (anpassen nicht vergessen):
echo "base=0xe4000000 size=0x400000 type=write-combining" > /proc/mtrr
Wie man die Adressen bekommt und was man da genau eintraegt fuer Dein
System steht in /Documentation/mtrr.txt.
Das Optimale rausholen kannst Du aus Deinem Kernel in Verbindung mit
dem K6-3 nur, wenn Du einen GCC >= 2.95.x hast, dann kannst Du in
/arch/i386/Makefile ein paar Optimierungen vornehmen, hier die
entsprechenden Stellen:
CFLAGS_PIPE := -pipe
CFLAGS_NSR := -fno-strength-reduce
CFLAGS := $(CFLAGS) $(CFLAGS_PIPE) $(CFLAGS_NSR) -mpreferred-stack-boundary=2
ifdef CONFIG_M586TSC
CFLAGS := $(CFLAGS) -mcpu=k6 -march=k6 -fschedule-insns2 -DCPU=586
endif
Beim Kernelbacken einen "Pentium/TSC" angeben, wie gehabt.
Wenn Dich die Groesse des Kernels nicht stoert kannst Du auch noch
ein Loop-Unrolling machen lassen, das bringt auch nochmal ein paar Prozente,
da der K6 sehr schnell mit "unrolled integer loops" umgehen kann,
dann einfach noch ein "-funroll-loops" an die Compilerflags anfuegen.
Was das alles bedeutet sagen die Infos zum GCC.
P.S.: Du kannst mit diesen Compilerflags auch andere Programme optimieren,
einen Zuwachs von ca. bis zu 30% bringt noch ein "-fstrict-aliasing"
zusaetzlich (bitte nicht zum Kernelbacken benutzen!).
P.S.2: alles fuer Kernel 2.2.10 aufwaerts.
-- # Heinz Diehl, 68259 Mannheim, Germany
Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET