Что означают события Perf: dTLB-load и dTLB-store? - PullRequest
1 голос
/ 16 мая 2019

Я пытаюсь понять значение событий perf: dTLB-load и dTLB-store?

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Когда виртуальная память включена, виртуальный адрес каждого отдельного доступа к памяти необходимо искать в TLB, чтобы получить соответствующий физический адрес и определить разрешения и привилегии доступа (или вызвать исключение в случае недопустимого сопоставления).События dTLB-loads и dTLB-stores представляют поиск TLB для загрузки памяти данных или доступа к хранилищу соответственно.Это perf определение этих событий.но точное значение зависит от микроархитектуры.

На Уэстмере, Скайлэйке, Каби-Лейк, Кофей-Лейк, Кэннон-Лейк (и, возможно, Ледяное озеро), dTLB-loads и dTLB-stores сопоставлены с MEM_INST_RETIRED.ALL_LOADS и MEM_INST_RETIRED.ALL_STORES соответственно.На Сэнди-Бридж, Айви-Бридж, Хасвелл, Бродвелл, Голдмонт, Голдмонт Плюс они сопоставлены с MEM_UOP_RETIRED.ALL_LOADS и MEM_UOP_RETIRED.ALL_STORES соответственно.На Core2, Nehalem, Bonnell, Saltwell они сопоставлены с L1D_CACHE_LD.MESI и L1D_CACHE_ST.MESI соответственно.(Обратите внимание, что в Bonnell и Saltwell официальными названиями событий являются L1D_CACHE.LD и L1D_CACHE.ST, а коды событий, используемые perf, документированы только в томе 3 руководства Intel, а не в других источниках Intel по событиям производительности.) События dTLB-loads и dTLB-stores не поддерживаются в Silvermont и Airmont.

На всех текущих процессорах AMD dTLB-loads отображается на LsDcAccesses, а dTLB-stores не поддерживается.Тем не менее, LsDcAccesses считает TLB-запросы как для загрузки, так и для хранения.На процессорах других производителей dTLB-loads и dTLB-stores не поддерживаются.

См. Аппаратные события кэширования и perf , чтобы узнать, как сопоставить perf события ядра с собственными событиями.

Количество событий dTLB-loads и dTLB-stores для одной и той же программы на разных микроархитектурах может отличаться не только из-за различий в микроархитектурах, но и из-за того, что сам смысл событий различен.Следовательно, даже если микроархитектурное поведение программы оказалось одинаковым на микроархитектурах, число событий может все же быть другим.Краткое описание нативных событий для всех микроархитектур Intel можно найти здесь , а более подробное описание некоторых микроархитектур можно найти здесь .

как интерпретировать перфоленты iTLB-нагрузки, перегрузки iTLB-нагрузки .

1 голос
/ 16 мая 2019

TLB-хранилище - это не запись в TLB, это запись в виртуальный адрес в основной памяти, который должен прочитать запись TLB.

Таким образом, TLB-хранилище - это TLB-ссылка, выполняемая операцией хранилища.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...