Commande pour mesurer les échecs TLB sur LINUX?

11

Quelqu'un pourrait-il me diriger vers une commande pour mesurer les échecs TLB sur LINUX, s'il vous plaît? Est-il correct de considérer (ou approximativement) les défauts de page mineurs comme TLB manque?

samarasa
la source

Réponses:

10

Vous pouvez utiliser perf pour accéder aux compteurs de performances matérielles:

$ perf stat -e dTLB-load-misses,iTLB-load-misses /path/to/command

par exemple :

$ perf stat -e dTLB-load-misses,iTLB-load-misses /bin/ls > /dev/null

 Performance counter stats for '/bin/ls':

             5,775 dTLB-load-misses                                            
             1,059 iTLB-load-misses                                            

       0.001897682 seconds time elapsed
gby
la source
2

Une faute mineure et une absence de TLB ne sont pas de bons analogues. Une erreur mineure se produit lorsqu'une page demandée est en mémoire mais n'est pas mappée dans la table de pages en cours. Ce serait certainement le cas qu'une erreur mineure sera associée à un échec TLB (car les entrées TLB sont des raccourcis vers les entrées de la table des pages), mais les échecs TLB seront causés par de nombreuses autres choses, par exemple des erreurs matérielles ou une transition dans la localité d'un programme. .

adrianmcmenamin
la source
1

Des erreurs de page mineures se produisent lorsque la page est déjà chargée en mémoire, mais l'entrée de table de pages associée n'est pas encore créée. En tant qu'effet secondaire, les défauts de page mineurs entraînent toujours des échecs TLB. D'un autre côté, une erreur TLB se produit lorsque l'entrée de traduction d'une page ne réside pas dans le TLB (qui est un cache), ce qui peut se produire lorsque cette entrée TLB a été précédemment expulsée en raison de la capacité limitée du TLB.

rlavaee
la source