Selon le tutoriel perf, Événements de l'unité de surveillance des performances (PMU) ou événements matériels font référence aux événements qui peuvent être mappés directement à des événements spécifiques au processeur pour un fournisseur de processeur. Mais les événements de cache matériel faire référence à certains surnoms d'événements matériels fournis par perf
, qui peuvent être mappés sur des événements réels fournis par le processeur. Pour la liste des perf
Les événements de cache utilisent perf list cache
dans le terminal Linux.
Quelques réponses :
L1
est le cache de niveau 1, le plus petit et le plus rapide.LLC
d'autre part fait référence au dernier niveau de la hiérarchie du cache, désignant ainsi le cache le plus grand mais le plus lent.i
vsd
distingue le cache d'instructions du cache de données. Seul L1 est divisé de cette manière, les autres caches sont partagés entre les données et les instructions.TLB
fait référence au tampon de recherche de traduction, un cache utilisé lors du mappage d'adresses virtuelles à des adresses physiques.- Compteurs TLB différents selon que l'adresse nommée fait référence à une instruction ou à des données.
- Pour tous les accès aux données, différents compteurs sont conservés selon que l'emplacement mémoire donné a été lu, écrit ou prérécupéré (c'est-à-dire récupéré pour être lu ultérieurement).
- Le nombre d'échecs indique la fréquence à laquelle un élément de données donné a été consulté, mais pas présent dans le cache.
Vous semblez penser que le cache-misses
événement est la somme de tous les autres types d'échecs de cache (L1-dcache-load-misses
, etc). Ce n'est en fait pas vrai.
le cache-misses
L'événement représente le nombre d'accès à la mémoire qui n'ont pu être servis par aucun des caches.
J'avoue que la documentation de perf n'est pas la meilleure qui soit.
Cependant, on peut en apprendre pas mal à ce sujet en lisant (en supposant que vous ayez déjà une bonne connaissance du fonctionnement d'un CPU et d'une unité de surveillance des performances, ce n'est clairement pas un cours d'architecture informatique) la doc de la fonction perf_event_open() :
http://web.eece.maine.edu/~vweaver/projects/perf_events/perf_event_open.html
Par exemple, en le lisant, vous pouvez voir que le cache-misses
l'événement affiché par la liste de performances correspond à PERF_COUNT_HW_CACHE_MISSES