Dies ist noch keine endgültige Antwort. Stattdessen sind einige Vorschläge zu lang, um in Kommentare zu passen.
Ich befürchte, Sie könnten die Bedeutung der sysfs cpufreq-Parameter leicht falsch interpretieren. Auf meinem Core Duo- Laptop werden beispielsweise die related_cpu
Parameter für beide Kerne gelesen. 0 1
Dies würde Ihrer Interpretation zufolge bedeuten, dass die Kerne die Frequenzen nicht unabhängig voneinander wechseln können. Das ist aber nicht der Fall - ich kann jede Frequenz nach Belieben einstellen. Im Gegensatz dazu affected_cpus
listet der Parameter für jeden Kern nur die jeweilige CPU-Nummer auf.
Vielleicht haben Sie einen Blick auf Kernel - Dokumentation für die CPU-Frequenz zu bekommen , ein besseres Verständnis der Parameter wie nehmen wollen affected_cpus
, related_cpus
, scaling_*
und cpuinfo_*
. Die Dokumentation wird normalerweise mit Kernel-Quellpaketen verteilt. Insbesondere empfehle ich zu lesen <kernel-sources-dir>/Documentation/cpu-freq/user-guide.txt
, wo <kernel-sources-dir>
normalerweise für /usr/src/linux
oder stehen würde /usr/src/linux-<kernel-version>
. (Wenn ich jetzt die Dokumentation selbst durchblättere, muss ich jedoch zugeben, dass ich einige der Nuancen im Zusammenhang mit der Frequenzskalierung nicht verstehe. Um diese vollständig zu verstehen, muss man wahrscheinlich zuerst ein solides Verständnis der CPU-Architekturen erlangen.)
Zurück zu Ihrer Frage. Und noch ein Testfall meinerseits: Wenn ich den Wert von scaling_max_freq
(mit einem userspace
oder performance
einem verwendeten Regler) ändere , schaltet die Uhr des Kerns automatisch auf dieses neue Maximum um. Das unterschiedliche Verhalten, das Sie beobachten, kann eines der folgenden sein:
- spezifisch für die Hardware-Implementierung von Frequenzskalierungsmechanismen auf Ihrer CPU,
- aufgrund von Unterschieden zwischen dem Standardmodul
cpufreq
und dem, phc-intel
das ich verwende,
- normales Verhalten (nennen Sie es einen Fehler oder eine Funktion, wenn Sie so wollen) des
cpufreq
Moduls, das sich seitdem geändert hat 2.6.35
(meine aktuelle Kernel-Version ist 3.6.2
),
- Ergebnis eines Fehlers bei der
cpufreq
Implementierung Ihrer CPU (oder der gesamten Familie),
- spezifisch für die Implementierung des
performance
CPU-Reglers ab 2.6.35
.
Einige der Dinge, die Sie tun könnten, um Ihre Untersuchung weiter voranzutreiben:
- Lesen Sie das
user-guide.txt
und spielen Sie mehr mit anderen cpufreq
Parametern.
- Wiederholen Sie die Tests, während Sie einen neueren Kernel ausführen. Am einfachsten ist es, eine Live-CD / DVD / USB zu starten.
Wenn Sie weiterhin unerwartetes Verhalten feststellen und mehr Gründe für die Annahme erhalten, dass es sich um einen Fehler handelt (dies muss unbedingt mit der neuesten kleineren Kernelversion überprüft werden), melden Sie dies auf kernel.org bugzilla .