• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Kernel mit CPU Extension erstelln

Hallo zusammen!

Mir ist letztens ne idee gekommen:
Wenn ich was mit dem gcc copaliere(wie schreibt man das ?), dann kann ich dem doch sagen, das der für das Programmm die Befehlssätze der CPU(z.B MMX, SSE2,..) mitverwenden soll => Programm läuft auf dieser einen cpu schneller

jetzt meine Idee: Wenn ich das mit dem Kernel mache, müsste mein ganzes System etwas schneller laufen.

Liege ich da richtig? gibst das was zu beachten, wenn ich das machen will?

gruß altersiedler

PS: Habe mich mit dem Thema Kernel noch nicht groß beschäftig
 

Gimpel

Guru
wenn man in der kernel config den genauen cpu typ angibt, kompiliert gcc automatisch mit entsprechenden CFLAGS
;)

zB athlon --> -march=athlon-xp

der gcc erkennt aus -march auch gleich, was die cpu so unterstützt..

# cat /proc/cpuinfo | grep flags
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow

es gibt zwar nen sogenannten cflags-moo patch, um die zu umgehen und eigene zu setzen, aber das is EVIL!

btw: wie definierst du schnell?
klar: generic x86 support raus, genauen prozzi typ rein --> optimierter kernel --> eigene features können genutzt werden (zB 3dnowext @ athlon)

ABER: den eigentlichen "speed" macht der cpu scheduler. default ingo is für desktops lahmer als RTP mit LLD mode, oder con's staircase. beides scheduler optimiert für desktop usage

für server is das beste der default scheduler aus vanilla, oder zaphod soll sich da auch gut machen

das ganze dann mit dem passenden i/o scheduler... für desktops is da cfq mit timesliced design (cfq-ts) zu empfehlen, gute balance. deadline is fein wenn man es oft mit unzahlen kleiner files zu tun hat. der prescht die einfach durch
 
OP
altersiedler

altersiedler

Newbie
Danke für deine antwort!

nun habe ich noch ein paar frage für diesen teil:
Gimpel schrieb:
ABER: den eigentlichen "speed" macht der cpu scheduler. default ingo is für desktops lahmer als RTP mit LLD mode, oder con's staircase. beides scheduler optimiert für desktop usage

für server is das beste der default scheduler aus vanilla, oder zaphod soll sich da auch gut machen

das ganze dann mit dem passenden i/o scheduler... für desktops is da cfq mit timesliced design (cfq-ts) zu empfehlen, gute balance. deadline is fein wenn man es oft mit unzahlen kleiner files zu tun hat. der prescht die einfach durch

1 Frage: was nutzt der suse standart kernel für nen cpu-scheduler?
2. Frage: wenn ich nen anderen scheduler haben will,muss ich sicher nen neunen kernel bauen?
 

Gimpel

Guru
altersiedler schrieb:
1 Frage: was nutzt der suse standart kernel für nen cpu-scheduler?
2. Frage: wenn ich nen anderen scheduler haben will,muss ich sicher nen neunen kernel bauen?

zu 1) SuSE default nutzt den standard scheduler aus vanilla, und den mit generischem x86 support, spriche ohne CPU spezifische optimierungen

zu 2) ja, logo.
zB einen -ck http://members.optusnet.com.au/ckolivas/kernel/

oder einen mit Raltime Preemption http://linux-club.de/viewtopic.php?t=31817
wo bei du bei dem howto nicht "full preempt" sondern "low latency desktop" auswählen musst

ich hab hier immer eins von beiden laufen, derzeit -ck, der davor war RTP, sehr angenehm flott und interaktiv
 
altersiedler schrieb:
Wenn ich was mit dem gcc copaliere(wie schreibt man das ?),
Infinitv: kompilieren
dann kann ich dem doch sagen, das der für das Programmm die Befehlssätze der CPU(z.B MMX, SSE2,..) mitverwenden soll => Programm läuft auf dieser einen cpu schneller
Jo, ( -msse oder -msse2 oder -msse3 ) UND -mfpmath=sse
Allerdings bringt dir das wenig, da Floating Point im Kernel tabu ist.

Für den anderen Kram, z.B. cmov usw. gibt's im make menuconfig ja "Processor subtype".

Topic: Speed? Kernel mit HZ=100, große Timeslices und Seti@Home mit SSE :)
cfq auch, aber das ist ja'n disk scheduler, kein process sched.
 
Oben