2008-10-01 2 views
5

В приложениях с низкой задержкой мы очень хорошо разбираемся в проблемах с задержкой. Существует некоторая озабоченность тем, что наше приложение может испытывать повышенную задержку, если сервер, на котором он работает, изменяет состояние PowerNow.Какова задержка в операции изменения состояния AMD PowerNow?

Любые разработчики ядра, знакомые с вызовами изменений PowerNow и количеством процессорного времени для этой операции и какими являются характеристики задержки/задержки?

Такая же информация для Intel SpeedStep была бы полезна, но PowerNow - это то, что мы на самом деле используем.

Спасибо!

ответ

2

Ядро Linux, по-видимому, принимает верхнюю границу пятой части миллисекунды для завершения операции изменения состояния PowerNow.

Я бы подумал, что больше беспокоиться, чем стоимость изменения состояния, тем не менее, будет то, что разгон процессора заставит ваше приложение работать медленнее, увеличивая латентность по всем направлениям.

+0

В течение этого времени латентность не является большой проблемой. Коробка более чем достаточна при нормальной нагрузке и при большой нагрузке. Был иррациональный страх, что процесс изменения самого государства приведет к задержке. Благодаря! – 2008-10-01 19:29:56

1

Я сомневаюсь, что у него есть латентность. PowerNow просто снижает частоту ядра и напряжение ядра. Я не знаю, что это остановит процессор на короткое время, чтобы сделать это, а затем возобновить обработку после изменения. AFAIK изменение происходит «на лету», обработка для этого не прерывается.

Таким образом, большая проблема может заключаться в том, что вы полагаетесь на определенную скорость (например, вы предполагаете, что процессор может выполнять это много операций в секунду), однако при понижении частоты ядра он будет вести себя как более медленный CPU (за вычетом операций в секунду), а частота ядра не достигает максимума только потому, что процессор не на 100% простаивает. Он снова подпрыгнет, когда процессор подумает, что ему требуется больше вычислительной мощности, чем в настоящее время.

В Linux PowerNow может вызвать проблемы при запуске VMWare с Windows. Windows не может правильно обновить внутренние часы, поскольку, похоже, не обнаруживает, что PowerNow действует (я думаю, потому что она работает на виртуальной машине), и VMWare для Linux также не справляется с ситуацией. Таким образом, часы Windows отстают, как только PowerNow будет активен, и время от времени VMWare обнаруживает это и исправляет часы снова. До сих пор так хорошо, но приложения, основанные на часах Windows, будут видеть этот странный скачок и вести себя довольно странно (например, программное обеспечение для радиопотока, которое, как я знаю, будет прыгать в потоке MP3 и пропускать пару миллисекунд каждый раз, когда часы будут повторно синхронизированы).

Если ваше приложение сильно зависит от устойчивого потока программы, вы можете полностью отключить функцию PowerNow. С помощью программного обеспечения для радиопотоков в Интернете это был единственный способ решить проблему пропуска.

+0

У нас нет уверенности в том, что определенная скорость поддерживается, только эта латентность не опускается ниже определенной суммы, что не представляет проблемы, поскольку мы сохраняем наши ящики на 5-10% нагрузки. В этих приложениях с низкой задержкой нет VMWare. Это RHEL4 на Proliant DL585 G2 прямо на аппаратном обеспечении. Спасибо! – 2008-10-01 19:38:03