# Hyperthreading generell stabil? Kernel 2.6.12-r6 speziell?

## STiGMaTa_ch

Hallo zusammen

Ich habe mir die Zeit genommen Gentoo auch mal auf meinem P4 boliden zu installieren. Es ist eine ganz normale 2005.0/Stage 3 installation. Es wurde gesynct und alle Pakete sind auf dem neusten Stand. Den Kernel 2.6.12-gentoo-r6 habe ich zuerst mit make allnoconfig "geleert" und dann all das eingefügt was ich benötige. Ich habe also einen sauberen, kleinen Kernel.

Da ich ja nun einen P4 3.4GHz Rechner mit Hyperthreading habe, wollte ich die Unterstützung dafür natürlich auch drinn haben. Flugs also im Kernel ACPI aktiviert und folgende Optionen eingestellt:

```
Processor type and features  --->

   [*] Symmetric multi-processing support

   (8)   Maximum number of CPUs (2-255)

   [*]   SMT (Hyperthreading) scheduler support

   [*] Preemptible Kernel

   [*]   Preempt The Big Kernel Lock (New)

   [*] MTRR (Memory Type Range Register) support

   [*] Enable kernel irq balancing (NEW)

   [*] Enable seccomp to safely compute untrusted bytecode (NEW)
```

Das Problem ist nun, dass im ersten Moment alles läuft. Der Rechner wird gebootet und dank vesafb sehe ich auch zwei Pinguine.

Sobald ich nun aber etwas grösseres kompiliere "z.B. glibc, gcc etc." friert der Rechner einfach irgendwann ein "wohlgemerkt in der Konsole! X ist noch keines drauf!". Da geht dann nix mehr. Kein Umschalten mittels ALT-Fx, kein CTRL-ALT-DEL. Da ich mit dem ebenfalls darauf installierten Windows XP unter Last (z.B. Videos komprimieren, Rendern) ganz ähnliche Probleme hatte (dachte immer es liegt an Windows), habe ich nun Hyperthreading im verdacht.

Unter Linux habe ich die SMP Einstellungen im Kernel nun folgendermassen angepasst:

```
Processor type and features  --->

   [ ] Symmetric multi-processing support

   [ ] Preemptible Kernel

   [*] MTRR (Memory Type Range Register) support

   [*] Enable kernel irq balancing (NEW)

   [*] Enable seccomp to safely compute untrusted bytecode (NEW)
```

Und siehe da, bei meinem testhalber durchgeührten emerge -ev world ist er nun schon seit 2h am durchkompilieren ohne irgend ein Problem.

Tja, und daher stellen sich mir nun folgende Fragen:

- Ist HyperThreading unter Linux allgemein noch nicht stable?

- Ist vielleicht nur der 2.6.12er drann Schuld und mit älteren Kernels läuft Hyperthreading ideal?

- Habe ich vielleicht falsche Kerneloptionen angewählt?

- Oder funktioniert Hyperthreading eigentlich ganz gut und ich habe einfach ein defektes Montagsmodell der CPU erwischt?

- Bringt HT überhaupt etwas oder ist der Geschwindigkeitsgewinn im "nicht wahrnehmbaren" Bereich? (Wenn es nix bringt deaktiviere ich es nähmlich ganz im BIOS, während wenn es einen Geschwindigkeitschub bringt ich mir überlegen muss wie ich den Defekt beweisen kann um eine neue CPU zu erhalten.)

Danke schonmal im vorraus für eure Unterstützung.

Lieber Gruss

STiGMaTa

----------

## dakjo

Liegt wohl eher an deinem MB als am Hyperthreading.

Hab hier mehrere Server mit 1-2 Xeons inkl. Hyperthreading und Kernel 2.6.12-r6.

Keine Problem soweit, auch unter Last 3-4.

----------

## Blood_Seeker

Also bei mir läuft das HT ohne probleme.

Aber einen WIRKLICHEN leistungs zuwachs habe ich nicht bemerkt und in deinem Fall kanns dir ja auch fast wurscht sein. 3,4Ghz

das ist schon ne rechenmaschine  :Wink: 

----------

## STiGMaTa_ch

@dakjo

Mit deiner Vermutung lagst du gar nicht mal so falsch  :Sad: 

Anscheinend sind "komische" BIOS Werte an meinen Problemen schuld (gewesen?). Nun habe ich mal das BIOS meines Asus P5GDC-V-Deluxe entrümpelt und beinahe alle Werte welche vorher auf "Auto" oder "Default" waren einfach von Hand gesetzt. Und siehe da, Hyperthreading habe ich zwar noch nicht ausprobiert, aber die Segmentation Faults welche ich beim kompilieren grosser Pakete erhalten habe sind nun endlich auch weg.

Und ich dachte immer die "Auto" Werte werden vernünftige, langsame, funktionierende Werte einstellen... Tja, wie man sich irren kann.

@Blood_Seeker

Also ich werde Hyperthreading definitiv weg lassen! Nebst dem, dass ich bisher keinen Performance Verlust feststellen konnte ist die durchschnittliche CPU Temperatur um 5-10° gesunken! Cool (im wahrsten Sinne des Wortes)  :Wink: 

Lieber Gruss

STiGMaTa

----------

## the_easterbunny

hi,

vielleicht hilft dir das weiter:

https://forums.gentoo.org/viewtopic-t-360230.html

lg

the_easterbunny

----------

## ian!

 *STiGMaTa_ch wrote:*   

> Also ich werde Hyperthreading definitiv weg lassen! Nebst dem, dass ich bisher keinen Performance Verlust feststellen konnte ist die durchschnittliche CPU Temperatur um 5-10° gesunken! Cool (im wahrsten Sinne des Wortes) 

 

Klar. Die CPU wird auch wesentlich weniger ausgelastet. (Um das mal einfach darzustellen.)

Hyperthreading läuft stabil und bringt auch einiges. Natürlich ist es bei weitem nicht mit einem echten Dual-CPU System zu vergleichen, aber HT abzuschalten ist Verschenken von Leistung.

----------

## Anarcho

Das sehe ich auch so.

Gerade wenn ein Prozess auf die Daten der Festplatte wartet kann mit HT ein zweiter Prozess gleichzeitig weiterarbeiten. Dementsprechend musst du natürlich in der make.conf einen Wert für j > 1 bei MAKE_OPTS einstellen.

----------

## STiGMaTa_ch

Also das mit dem HT einschalten wird wohl momentan nix  :Sad: 

Nachdem ich gestern und heute Nacht jeweils von Stage 1 auf Stage 3 kompiliert habe (ja, habe das Sysem mal neu aufgesetzt um auszuschliessen, dass all meine Versuche nicht plötzlich dazwischenspielen) und ein emerge kdebase-startke laufen liess wurden ca. 165 Pakete mit abgeschaltetem Hyperthreading sowie "optimierten" BIOS Einstellungen kompiliert. Fazit -> KEINE PROBLEME

Daher habe ich vorhin mal meinen aktuellen Kernel mit den folgendnen Optionen kompiliert und Hyperthreading eingeschaltet.

```
Processor type and features  ---> 

   [*] Symmetric multi-processing support 

   (8)   Maximum number of CPUs (2-255) 

   [*]   SMT (Hyperthreading) scheduler support
```

nach dem booten ist ein simples emerge kicker konqueror sofort wieder fehlgeschlagen mit Segmentation Faults. Daher habe ich dann schnell das Hyperthreading sowie die Kernel Optionen deaktiviert und den Rechner nochmals gebootet. Danach funktionierte das emergen von kicker und konqueror Problemlos.

Soweit also mal zum aktuellen Status:

@the_easterbunny

Vielen Dank für den Link! Ich werde die darin enthaltenen Tipps mal ausprobieren. Das dauert aber ein weilchen *sigh* ...

@ian! + Anarcho

Naja, wer verschenkt schon gerne Leistung. Aber andererseits scheint es wirklich nicht zu gehen, wenn ich HT drinn habe.  Von daher wird mir wohl kaum was anderes übrig bleiben im Moment  :Sad: 

Lieber Gruss

STiGMaTa

----------

## the-pugnacity

ich habe hier und @work jeweils nen p4 2,8ghz mit aktiviertem HT und konnte bisher nie solche fehler feststellen, es muss also entweder an deiner hardware, oder eher unwahrscheinlich an deiner kernel konfiguration liegen.

----------

## ian!

 *the-pugnacity wrote:*   

> ich habe hier und @work jeweils nen p4 2,8ghz mit aktiviertem HT und konnte bisher nie solche fehler feststellen, es muss also entweder an deiner hardware, oder eher unwahrscheinlich an deiner kernel konfiguration liegen.

 

Würde ich auch drauf schliessen wollen. Irgendwas ist da ganz derbe faul. Vorallem, da das Problem ja auch unter Windows auftritt, kann man wohl einen fehlerhaften Kernel als Fehlerquelle ausschliessen. Evtl Schritt für Schritt durchgehen und mal das Board und die CPU sowie das BIOS checken. Ist das Board/BIOS überhaupt HT-fähig? BIOS-Update gemacht? Mal die CPU in einem anderen Board mit HT getestet?

----------

## the-pugnacity

ich würde folgendes machen...

temperatur der cpu checken, notfalls unter windows und zB mit cpu burn

default werte

neues bios

anderes board

andere cpu

ansonsten würde ich auch mal in richtung netzteil gucken ob dein netzteil nicht etwas schwach auf der brust ist nen p4 lebt eigentlich fast nur aus der 12V schiene

----------

## STiGMaTa_ch

@ian

 *Quote:*   

> Irgendwas ist da ganz derbe faul. Vorallem, da das Problem ja auch unter Windows auftritt, kann man wohl einen fehlerhaften Kernel als Fehlerquelle ausschliessen. Evtl Schritt für Schritt durchgehen und mal das Board und die CPU sowie das BIOS checken. Ist das Board/BIOS überhaupt HT-fähig? BIOS-Update gemacht? Mal die CPU in einem anderen Board mit HT getestet?

 

Naja, die Abstürze in Linux/Windows haben wahrscheinlich mit den komischen "default/auto" Werten des BIOS zu tun gehabt. Da ich jedoch das ganze Weekend mit Genoo beschäftigt war, kann ich noch nicht sagen ob die Fehler unter XP nun ebenfalls weg sind. Das auszutesten dauert natürlich wieder ein weilchen.

Ausserdem scheint der Link von the_easterbunny genau mein Problem zu beschreiben. Und dort scheint es sich ja um ein Kernel Problem zu handeln. Allerdings muss ich auch das noch testen, was natürlich ebenfalls wieder dauert...

@the-pugnacity

 *Quote:*   

> temperatur der cpu checken, notfalls unter windows und zB mit cpu burn
> 
> default werte
> 
> neues bios
> ...

 

- Temperatur

Das war ehrlich gesagt mein aller erster Verdacht den ich überhaupt hatte. Die CPU hatte vorhin im Leerlauf immer so um die 65° C.  Bei Last um die 73°C. Da mein letzter Rechner ein P3 800MHz war hab ich natürlich zuerst Panik gekriegt (das waren für den die Todestemperaturen!). Aber nach einer weile Googeln/mit anderen Austauschen/Foren lesen etc. habe ich dann gemerkt, dass dies eigentlich normale Temperaturen für einen P4 (ohne spezielle Zahlmann/Papst/sonstwas Lüfter oder Waküs) sind.

Naja, und ohne HT sind es im Ruhezustand nun um die 54°C und bei Last so um die 65°-69°C. Das scheinen mir eigentlich ganz vernünftige Werte zu sein. Allerdings kann ich die immer erst messen, wenn ich kurz reboote (und das habe ich dieses Weekend eine OFT getan  :Laughing: ). Was brauche ich denn genau um unter Linux die Temperatur zu messen? Ich habe ACPI aktiviert, im Kernel Thermal etc. gewählt und sys-power/acpi emerget. Aber wenn ich acpi -t eingeben kommt irgend ein Meldung (bin grad auf Arbeit, drum nur eine Erinnerung  :Wink:  ) von wegen "No Thermal Zone defined" oder so.

Meine zweite Idee war es, dass ich vielleicht RAM Probleme habe. Jedoch hat ein kurzer Memtest (ca. 3 Durchläufe) keine Fehler gebracht. Daher gehe ich davon aus, dass die i.o. sind (ja, ja ich weiss man sollte den ne Nacht lang laufen lassen, aber die Dinger sind erst ein halbes Jahr alt und mit meinen BIOS Anpassungen sind die kompilate ja durchgegangen...)

- default werte

Eben genau mit denen hatte ich ja so massive Probleme. Ich habe erst jetzt herumgeschraubt und mal "meine" Werte eingegeben (ohne allerdings das System zu übertrakten!). Erst nach dem setzen meiner Werte habe ich ja erst alle 165 Pakete in einem Rutsch durchkompilieren können (natürlich inkl. deaktiviertem HT).

- Neues BIOS

Ist eigentlich schon das aktuellste drauf. Es gäbe zwar noch ein neueres, ist aber eine BETA. Die will ich lieber noch nicht ausprobieren.

- Anderes Board, andere CPU

Naja, wenn ich einfach so ein LG775 P4 Board rumliegen hätte oder einen weiteren P4, wäre das sicher das erste gewesen. Aber leider ist das Zeugs noch schweine teuer, so dass ich mir keine "Ersatzteile" leisten kann  :Wink:  Das bedeutet, im Moment muss ich es ohne diese Option versuchen in den Griff zu bekommen  :Sad: 

Irgendwo habe ich in einem Artikel gelesen, dass HT z.B. beim umwandeln von Videos bis zu 25% mehr Leistung bringt. Wenn ich also davon ausgehe, dass im Durchschnitt ein Gewinn von 10% drinn liegt, dann müsste ja das komprimieren mit und ohne HT einen Zeitlichen Unterschied von ca. 10% bringen. Ich werde das - sobald ich alles benötigte drauf habe - mal austesten. (Eigentlich ist das Video komprimieren ja der Hauptgrund, warum ich auf dem Rechner Gentoo installiert habe  :Laughing: ). Denn wenn es nur grad 10% bringt, dann kann ich auch darauf verzichten. Ob das komprimieren nun 40min oder 36min dauert ist mir im Endeffekt ja schnurz. Ich sitze ja nicht davor und warte  :Smile: .

Lieber Gruss

STiGMaTa

----------

## Palatinum

wollte mal was zu den Temperaturen sagen,

also ich weiss net aber mein P4 2.8 auf 3 hochgetaktet wird definitiv nicht wärmer als 38 Grad leer und 44 Grad Vollast.

How-To für I2C:

http://de.gentoo-wiki.com/LM-Sensors

----------

## STiGMaTa_ch

 *Palatinum wrote:*   

> wollte mal was zu den Temperaturen sagen,
> 
> also ich weiss net aber mein P4 2.8 auf 3 hochgetaktet wird definitiv nicht wärmer als 38 Grad leer und 44 Grad Vollast.

 

Nur leider kannst du die nicht miteinander vergleichen.

- Mein P4 3.4 Ghz Prescott Prozessor hat eine Leistungsaufnahme von ~103 Watt bei einer Fläche von 112mm2

- Der P4 3.4 GHz Northwood Prozessor hat z.B. nur noch eine Leistungsaufnahme von ~89 Watt bei einer Fläche von 134mm2

- Dein P4 2.8 GHz hat je nach Bautyp eine Leistungsaufnahme von ~68-70 Watt.

Anhand dieser Zahlen kann man grob ersehen, dass die abgegebene Temperatur stark variiert. Im übrigen haben Tests gezeigt, dass z.B. ein P4 Northwood und ein P4 Prescott bei Vollast ca. 7° Temperaturunterschied haben. Und da ich wie oben beschrieben nur den standard Intel Boxed cooler verwende und keinen speziellen Powercooler einsetze, scheinen mir meine Temperaturwerte normal zu sein.

 *Quote:*   

> How-To für I2C:
> 
> http://de.gentoo-wiki.com/LM-Sensors

 

Hey, danke vielmals! Das werde ich heute Abend gleich ausprobieren!

Lieber Gruss

STiGMaTa

----------

## the-pugnacity

die temperatur ist aber arg hoch ich habe hier @work nen 2,8er mit boxed kühler und der wird unter last auch nicht wärmer als 54° und das obwohl ich beide kerne über eine woche belastet habe.... gimps lässt grüßen

----------

## STiGMaTa_ch

 *the-pugnacity wrote:*   

> die temperatur ist aber arg hoch ich habe hier @work nen 2,8er mit boxed kühler [...]

 

Wie ich oben schon geschrieben habe, kann man einen 2.8er nicht mit einem 3.4er Prescott vergleichen. Nur schon ein Pentium4 3.4GHz Prescott ist um 7°C wärmer als ein Pentium4 3.4GHz Northwood. Je mehr Leistung pro mm2 desto höher die Temperatur.

Wenn ich das noch recht in Erinnerung habe ist beim Prescott der kritische Punkt bei 90°C während er bei anderen Prozessoren der P4 Reihe bereits bei 70°C liegt.

Im übrigen kann man z.B. auch in diesem Artikel sehen, dass eine CPU Temperatur von 74°C bei Leistung ein - leider - normaler Wert ist.

Lieber Gruss

STiGMaTa

----------

## theche

das hyperthreading teilt ja nur nichtbenutze Prozessorressourcen (zB die eine oder andere Floating-Point Einheit) einem zweiten virtuellen Prozessor zu. IMHO ist gerade die FP-Einheit beim Videokodieren sehr stark ausgelastet, Sodass HT dir hier überhaupt nichts bringt.

Aber auch hier läuft ein P4 3GHz ohne größere Probleme mit aktiviertem HT. 

Die Temperatur kann ich btw so auslesen:

```

mac@notebook ~ $ cat /proc/acpi/thermal_zone/THRM/temperature

temperature:             48 C

```

----------

## sewulba

Hallo...

Ich habe einen P4 3.0GHz/800FSB laufen, der nie über 49°C hinaus geht. Auf Gentoo mit Hyperthreading aktiviert kein Problem. Allerdings verwende ich bei diesem Prozessor ein MSI-Board!

Auf meinem Dual Xeon 3.6GHz/800FSB geht die Temperatur unter Vollast auf bis zu 55°C hoch. Wenn keine Last auf 44°C runter. Nun mein Tip: Ich hatte auf meinem Dual Xeon ähnliche Problem. Erst als ich im Bios USB-Legacy abgeschaltet habe und den S3 Modus auf S1 eingestellt habe (weiss jetzt nicht genau, wie das heisst). Wirst es aber im BIOS finden  :Wink: 

Erst als ich das geändert hatte lief alles OHNE Probleme!  :Razz: 

Ich hoffe es hilft Dir!  :Rolling Eyes: 

Sewulba

----------

## STiGMaTa_ch

So, dann will ich hier mal einen Statusbericht abliefern für zukünftige Generationen.

Hyperthreading und Linux laufen definitiv stabil  :Laughing: .

Mein Problem war, dass ich auf die Default Werte des BIOS vertraut habe. Oder sagen wir, ich habe auf die Erkennungsroutinen vertraut. Das war anscheinend ein Fehler.

Wie ich weiter oben schon beschrieben habe half es zuerst einmal gewisse Default Einstellungen von Hand zu verändern. Damit wurde mein System stabiler. Richtig stabil wurde es jedoch erst, als ich auch die Spannungen diverser Komponenten von Hand eingestellt habe (Man beachte, eingestellt, NICHT verstellt!). Seit diesen Einstellungen läuft der Rechner mit Hyperthreading ohne Probleme. Ich habe z.B gestern Nacht 8 Videos nach xvid4 umgewandelt ohne irgend ein Problem.

Ich poste nachfolgend meine Einstellungen falls jemand mal diesen Thread aus dem selben Grund liest:

Im Bios gibt es meistens eine Sektion, in der man Einstellungen zur CPU verändern kann:

Original Einstellungen

```
CPU Lock Free:                  Auto

Max CPUID Value Limit:          Disabled

Enhanced C1 Control:            Auto

Hardware Prefetcher:            Enabled

Adjacent Cache Line Prefetch:   Enabled

CPU Internal Thermal Control:   Auto

Hyper Threading support:        Enabled
```

Neue Einstellungen

```
CPU Lock Free:                  Disabled

Max CPUID Value Limit:          Disabled

Enhanced C1 Control:            Disabled

Hardware Prefetcher:            Disabled

Adjacent Cache Line Prefetch:   Disabled

CPU Internal Thermal Control:   Auto

Hyper Threading support:        Enabled
```

Weiterhin habe ich folgende Spannungen und Frequenzen Manuell eingestellt. Die Infos dazu findet man z.B. in der beliegenden Dokumentation, auf der Herstellerseite oder man muss ein bisschen googeln und die Werte ausloten (immer mit dem kleinsten beginnen!).

```
DRAM Frequency: 533MHz

CPU Lock Free: Disabled

Memory Voltage: 1.8V

CPU VCore Voltage: 1.400V
```

Positiver Nebeneffekt: Dadurch dass die Spannungen und Frequenzen nicht irgendwie Voodoo-mässig geraten (ähm ermittelt...) werden, sind meine Temperaturen (MIT aktiviertem Hyperthreading) konstant um 10°C gesunken.

Ich hoffe die Infos helfen dem einen oder anderen weiter.

@sewulba

Danke für die Tipps. USB-Legacy ist bei mir auf Auto gestellt. Im Endeffekt ist es jedoch genau wie bei dir deaktiviert, da ich kein USB Keyboard drann habe. Von daher kann ich auch nicht testen ob ein explizites aktivieren das System instabiler machen würde. Die S3, S1 Geschichte heisst bei mir Suspend Mode und ist momentan auf Auto gestellt. Bis jetzt habe ich damit keine Probleme gehabt.

@Platinum

Das mit den LM-Sensors funktioniert leider nicht bei mir. Er erkennt zwar den Winbond Chip, meint jedoch selber, dass dafür noch keine Unterstützung besteht. Ich muss mich also wohl gedulden, bis der Chip unterstützt wird. Trotzdem Danke für den Tipp.

Lieber Gruss

STiGMaTa

----------

## longinus

Wobei anzumerken ist das bestimmte ASUS Mainboards schon seit einiger Zeit etwas für Probleme gesorgt haben, es bessert sich Langsam aber wieder.

Du hattest doch auch das Problem mit der integrierten Netzwerkkarte.

Hatte schon einen Fall da lief ein bestimmtes ASUS Board, ohne das es einen Hardware Fehler gehabt hätte, im Dual Channeling Betrieb nicht stabil, das gleiche Board mit der gleichen Revisions Nummer und gleicher Bios Version, nur neuerer Herstellung hatte dann das Problem nicht mehr.

Außerdem ist auch bekannt das ASUS teilweise beim 'Kunden reifen' lies, nur Heute kann sich das auch ASUS nicht mehr leisten die Konkurrenz ist zu groß.

Habe vor einiger Zeit (2002) mal neue ASUS Board's gesehen auf denen waren noch einzelne Drahtbrücken verlötet  :Sad: 

ASUS hat sich imho zu lange auf seinen Erfolg der legendären ersten P90 Board's ausgeruht.

Quintessenz, Gentoo respektive der Linux Kernel ist da unschuldig dran.

----------

## GenYetiToo

 *Anarcho wrote:*   

> Das sehe ich auch so.
> 
> Gerade wenn ein Prozess auf die Daten der Festplatte wartet kann mit HT ein zweiter Prozess gleichzeitig weiterarbeiten. Dementsprechend musst du natürlich in der make.conf einen Wert für j > 1 bei MAKE_OPTS einstellen.

 

Ähem, das sollte selbst ein 486-er hinbekommen. Für sowas braucht's nun wirklich kein HT.

Markus

----------

