Pregunta

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

Gracias Arka

¿Fue útil?

Solución

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

En Westmere, la mejor estimación del rendimiento perdida mientras se espera que las fallas de TLB se manejen probablemente sea del evento de contador de rendimiento de hardware 08H, MASK 04H "DTLB_LOAD_MISSES.WALK_CYCLES", que se describe como contando "Cycles Page Miss Handler está ocupado con una página con una página con una página Camine debido a una carga de carga en el segundo nivel TLB ". Esto se describe en "Intel® 64 e IA-32 Architectures Software Developer's Manual Volume 3B: Guía de programación del sistema, Parte 2" (Número de documento: 253669), disponible en línea enhttp://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-doveloper-vol-3b-part-2-manual.html

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

  • Si también hay una falla en los cachés de traducción de página de nivel superior, tomará varios viajes a la memoria para encontrar y recuperar la entrada de la tabla de página deseada (por ejemplo, https://stackoverflow.com/a/9674980/1264917).
  • En algunos procesadores, los contadores de caché L2 pueden decirle cuántas caminatas de mesa golpean y perdieron en el L2, pero no en Nehalem. (No ayudaría mucho en este caso, ya que las caminatas de TLB que golpearon en el L3 también son bastante rápidas y lo que realmente quieres son las caminatas TLB que tienen que ir a la memoria).
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top