2008-10-01 8 views
5

En aplicaciones de negociación de baja latencia, somos muy conscientes de los problemas de latencia. Existe cierta preocupación de que nuestra aplicación pueda experimentar una mayor latencia si el servidor en el que se ejecuta cambia el estado de PowerNow.¿Cuál es la latencia en una operación de cambio de estado de AMD PowerNow?

¿Algún desarrollador de kernel familiarizado con llamar a PowerNow cambia y cuánto tiempo de procesador se usa para la operación y cómo son las características de latencia/demora?

La misma información para Intel SpeedStep sería útil, pero PowerNow es lo que realmente usamos.

Gracias!

Respuesta

2

El kernel de Linux parece asumir un límite superior de un quinto de milisegundo para que se complete una operación de cambio de estado de PowerNow.

Hubiera pensado que una preocupación mayor que el costo del cambio de estado en sí misma, sin embargo, sería que bajar la velocidad de la CPU hará que la aplicación funcione más despacio, lo que aumentará la latencia en todos los ámbitos.

+0

En general, la latencia no es una gran preocupación en este caso. La caja es más que adecuada bajo carga normal y bajo carga pesada. Había un miedo irracional a que el proceso de cambiar el estado en sí mismo introdujera latencia. ¡Gracias! –

1

Dudo que tenga ninguna latencia. PowerNow solo baja la frecuencia del núcleo y la tensión del núcleo. No sé si detendrá la CPU por un corto tiempo para hacerlo y luego reanudará el procesamiento después del cambio. AFAIK el cambio ocurre sobre la marcha, el procesamiento no se interrumpe por eso.

Por lo tanto, el problema mayor podría ser que dependa de una velocidad determinada (por ejemplo, suponga que el procesador puede realizar tantas operaciones por segundo); sin embargo, cuando la frecuencia del núcleo se reduce, se comportará como una CPU más lenta (menos operaciones por segundo) y la frecuencia del núcleo no aumenta al máximo solo porque la CPU no está 100% inactiva. Saltará de nuevo, cuando la CPU crea que necesita más potencia de procesamiento de la que tiene actualmente.

En Linux PowerNow puede causar problemas si ejecuta VMWare con Windows en él. Windows no actualiza correctamente el reloj interno, ya que parece no detectar que PowerNow está en efecto (supongo que porque se ejecuta dentro de una máquina virtual) y VMWare para Linux también falla al manejar la situación correctamente. Por lo tanto, el reloj de Windows se retrasará tan pronto como PowerNow esté activo y de vez en cuando VMWare detecta eso y corrige el reloj nuevamente. Hasta ahora todo bien, pero las aplicaciones que dependen del reloj de Windows verán este extraño salto y se comportarán de forma bastante extraña (por ejemplo, un software de transmisión de radio que saltará dentro de la transmisión de MP3 y omitirá un par de milisegundos cada vez que se vuelva a sincronizar el reloj).

Si su aplicación depende en gran medida de un flujo de programa constante, es posible que desee desactivar completamente la función PowerNow. Con el software de transmisión de radio de Internet, esa era la única forma de resolver el problema de omisión.

+0

No confiamos en que se mantenga una velocidad específica, solo que la latencia no cae por debajo de cierta cantidad, lo cual no es problema, ya que mantenemos nuestras cajas en torno al 5-10% de carga. No VMWare en estas aplicaciones de baja latencia. Este es RHEL4 en Proliant DL585 G2 directamente en el hardware. Gracias! –

Cuestiones relacionadas