2008-10-01 7 views
5

In Handelsanwendungen mit niedriger Latenzzeit sind wir uns der Latenzprobleme sehr bewusst. Es gibt Bedenken, dass unsere Anwendung möglicherweise eine höhere Latenz erleidet, wenn der Server, auf dem sie ausgeführt wird, den PowerNow-Status ändert.Wie hoch ist die Latenz bei einem AMD PowerNow-Statusänderungsvorgang?

Jeder Kernel-Entwickler, der mit dem Aufruf von PowerNow-Änderungen vertraut ist und wie viel Prozessorzeit für den Vorgang verwendet wird und wie die Latenz-/Verzögerungs-Eigenschaften aussehen?

Die gleichen Informationen für Intel SpeedStep wären nützlich, aber PowerNow ist, was wir tatsächlich verwenden.

Danke!

Antwort

2

Der Linux-Kernel scheint eine Obergrenze von einem Fünftel einer Millisekunde anzunehmen, um eine PowerNow-Statusänderungsoperation abzuschließen.

Ich hätte mir eine größere Sorge als die Kosten für den Zustand selbst gedacht, wäre aber, dass das Heruntertakten der CPU Ihre Anwendung langsamer laufen lässt und die Latenz auf der ganzen Linie erhöht.

+0

Auf der ganzen Linie ist die Latenz in diesem Fall kein großes Problem. Die Box ist bei normaler Belastung und starker Belastung mehr als ausreichend. Es gab eine irrationale Angst, dass der Prozess der Änderung des Zustands selbst Latenz einführen würde. Vielen Dank! –

1

Ich bezweifle, dass es Latenz hat. PowerNow senkt nur die Kernfrequenz und die Kernspannung. Ich weiß nicht, dass es die CPU für eine kurze Zeit anhalten wird und dann die Verarbeitung nach der Änderung wieder aufnehmen. AFAIK die Änderung geschieht im laufenden Betrieb, die Verarbeitung wird dafür nicht unterbrochen.

Das größere Problem könnte also sein, dass Sie sich auf eine bestimmte Geschwindigkeit verlassen (z. B. Sie nehmen an, dass der Prozessor so viele Operationen pro Sekunde ausführen kann), aber wenn die Kernfrequenz gesenkt wird, verhält er sich wie eine langsamere CPU pro Sekunde) und die Kernfrequenz springt nicht auf Maximum, nur weil die CPU nicht zu 100% im Leerlauf ist. Es wird wieder hochspringen, wenn die CPU denkt, dass sie mehr Rechenleistung benötigt, als sie derzeit hat.

Unter Linux kann PowerNow zu Problemen führen, wenn Sie VMWare mit Windows ausführen. Windows kann die interne Uhr nicht korrekt aktualisieren, da es anscheinend nicht erkennt, dass PowerNow in Kraft ist (da es innerhalb einer virtuellen Maschine läuft) und VMWare für Linux die Situation ebenfalls nicht korrekt behandelt. So wird die Windows-Uhr zurückfallen, sobald PowerNow aktiv ist und hin und wieder erkennt VMWare das und korrigiert die Uhr erneut. So weit, so gut, aber Anwendungen, die auf die Windows-Uhr angewiesen sind, werden diesen merkwürdigen Sprung sehen und sich merkwürdig verhalten (z.B. eine Radiostreaming-Software, von der ich weiß, dass sie innerhalb des MP3-Streams springt und jedes Mal, wenn die Uhr neu synchronisiert wird, einige Millisekunden überspringt).

Wenn Ihre Anwendung stark von einem konstanten Programmablauf abhängt, können Sie die PowerNow-Funktion möglicherweise vollständig deaktivieren. Mit der Internet-Radio-Stream-Software war das der einzige Weg, das Skipping-Problem zu lösen.

+0

Wir sind nicht darauf angewiesen, dass eine bestimmte Geschwindigkeit beibehalten wird, nur dass die Latenz nicht unter einen bestimmten Wert fällt, was kein Problem ist, da wir unsere Boxen um 5-10% belasten. Kein VMWare in diesen Anwendungen mit niedriger Latenz. Dies ist RHEL4 auf Proliant DL585 G2 direkt auf der Hardware. Danke! –