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_cpuParameter für beide Kerne gelesen. 0 1Dies 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_cpuslistet 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/linuxoder 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 userspaceoder performanceeinem 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
cpufreqund dem, phc-inteldas ich verwende,
- normales Verhalten (nennen Sie es einen Fehler oder eine Funktion, wenn Sie so wollen) des
cpufreqModuls, das sich seitdem geändert hat 2.6.35(meine aktuelle Kernel-Version ist 3.6.2),
- Ergebnis eines Fehlers bei der
cpufreqImplementierung Ihrer CPU (oder der gesamten Familie),
- spezifisch für die Implementierung des
performanceCPU-Reglers ab 2.6.35.
Einige der Dinge, die Sie tun könnten, um Ihre Untersuchung weiter voranzutreiben:
- Lesen Sie das
user-guide.txtund spielen Sie mehr mit anderen cpufreqParametern.
- 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 .