2012-02-18 50 views
9

Quiero estimar la sobrecarga de rendimiento debido a errores de TLB en una máquina x86-64 (Intel Nehalem) que ejecuta Linux. Deseo obtener esta estimación usando algunos contadores de rendimiento. ¿Alguien tiene algunos consejos sobre cuál es la mejor manera de estimar esto?Medición del costo de gestión de errores de TLB en x86-64

Gracias Arka

+0

Esto podría ser útil: http://oprofile.sourceforge.net/docs/intel-corei7-events.php –

Respuesta

15

Si puede obtener acceso a un "Westmere" sistema de las características de rendimiento de su código debe ser bastante similar a lo que tiene en el "Nehalem", basada, pero usted tendrá acceso a una nuevo evento de contador de rendimiento de hardware que mide casi exactamente lo que desea.

En Westmere, la mejor estimación del rendimiento perdido mientras se esperan errores de TLB es probablemente del contador de rendimiento de hardware Evento 08H, Máscara 04H "DTLB_LOAD_MISSES.WALK_CYCLES", que se describe como contar "Cycles Page Miss Handler is ocupado con una caminata de página debido a una falla de carga en el TLB de segundo nivel ". Esto se describe en "Intel® 64 e IA-32 arquitecturas de software de 3B Manual volumen Desarrollador: Guía de programación del sistema, Parte 2" (número de documento: 253669) disponible en línea, en http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.html

La razón de este evento es necesario es que el tiempo de procesamiento erróneo de TLB está dominado por el tiempo requerido para leer la línea de caché que contiene la entrada de la tabla de páginas. Si esa línea de caché está en la memoria caché L2, la sobrecarga de un TLB será muy pequeña (del orden de 10 ciclos). Si la línea está en la memoria caché L3, entonces tal vez 25 ciclos. Si la línea está en la memoria, entonces ~ 200 ciclos.

  • Si también hay un fallo en los cachés página de traducción de nivel superior, se tardará varios viajes a la memoria para encontrar y recuperar la entrada de tabla de página deseado (por ejemplo, https://stackoverflow.com/a/9674980/1264917).
  • En algunos procesadores, los contadores de caché L2 pueden indicar cuántas caminatas de mesa golpean y fallan en el L2, pero no en Nehalem. (No ayudaría mucho en este caso, dado que TLB anda ese hit en el L3 también es bastante rápido y lo que realmente quiere son los recorridos TLB que tienen que ir a la memoria.)
Cuestiones relacionadas