Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

260
Vistas
¿Cómo lograr una alta pérdida de TLB?

Estoy tratando de escribir un fragmento de código que logre una tasa de fallas de TLB muy alta (más del 95%). Se me ocurrió el siguiente código C que podría alcanzar alrededor del 30% de fallas de d-TLB.

Uso un tamaño de página de 4096 bytes en un procesador Intel x86_64 y Ubuntu 20.04 (kernel v5.4).

 #include <stdio.h> #include <stdlib.h> #define MEMORY_SIZE (1024 * 1024 * 1024) #define PAGE_SIZE 4096 #define PAGE_COUNT (MEMORY_SIZE / PAGE_SIZE) typedef unsigned char byte; typedef byte Page[PAGE_SIZE]; int main(int argc, char *argv[]) { register int loop = 3000; Page *pages = (Page *)malloc(PAGE_COUNT * sizeof(Page)); while (loop-- > 0) { for (register int i = 0; i < PAGE_COUNT; ++i) { register int page_num = (i % 2) ? i : PAGE_COUNT - i; pages[page_num][0]++; } } free(pages); return 0; }

Para compilar: $ gcc main.c -o main

Para ejecutar y medir usando el comando perf : $ sudo perf stat -e dTLB-loads-misses,dTLB-loads ./main

Y aquí está la salida:

 Performance counter stats for './main': 521,160,735 dTLB-loads-misses # 28.02% of all dTLB cache accesses 1,860,126,043 dTLB-loads 12.759230463 seconds time elapsed 12.429918000 seconds user 0.328050000 seconds sys

La salida del comando cpuid que contiene mi información TLB:

 cache and TLB information (2): 0x63: data TLB: 2M/4M pages, 4-way, 32 entries data TLB: 1G pages, 4-way, 4 entries 0x03: data TLB: 4K pages, 4-way, 64 entries 0x76: instruction TLB: 2M/4M pages, fully, 8 entries 0xb5: instruction TLB: 4K, 8-way, 64 entries 0xc3: L2 TLB: 4K/2M pages, 6-way, 1536 entries

La pregunta es, ¿cómo lograr fallas de TLB mucho más altas (más del 95%)?

Gracias

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda