Perf 事件的含义是什么:dTLB 加载和 dTLB 存储?
What is the meaning of Perf events: dTLB-loads and dTLB-stores?
我想了解性能事件的含义:dTLB 加载和 dTLB 存储?
A TLB-store 不是写入 到 TLB,它是写入主内存中的虚拟地址,必须 读取一个TLB条目。
所以 TLB-store 是 TLB-reference 由存储操作完成的。
启用虚拟内存后,每次内存访问的虚拟地址都需要在TLB中查找对应的物理地址,并确定访问权限和特权(或在映射无效时抛出异常). dTLB-loads
和 dTLB-stores
事件分别表示对数据存储器加载或存储访问的 TLB 查找。这是这些事件的 perf
定义。但确切的含义取决于微体系结构。
在 Westmere,Skylake、Kaby Lake、Coffee Lake、Cannon Lake(可能还有 Ice Lake),dTLB-loads
和 dTLB-stores
映射到 MEM_INST_RETIRED.ALL_LOADS
和 MEM_INST_RETIRED.ALL_STORES
, 分别。在 Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Goldmont、Goldmont Plus 上,它们分别映射到 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 卷中,其他文档中没有有关性能事件的英特尔资源。)Silvermont 和 Airmont 不支持 dTLB-loads
和 dTLB-stores
事件。
在所有当前的 AMD 处理器上,dTLB-loads
映射到 LsDcAccesses
,不支持 dTLB-stores
。但是,LsDcAccesses
计算加载和存储的 TLB 查找次数。在其他供应商的处理器上,不支持 dTLB-loads
和 dTLB-stores
。
请参阅 了解如何将 perf
核心事件映射到本机事件。
同一程序在不同微体系结构上的dTLB-loads
和dTLB-stores
事件计数可能不同,这不仅是因为微体系结构的差异,而且是因为事件本身的含义不同。因此,即使程序的微体系结构行为在微体系结构上是相同的,事件计数仍然可能不同。可以在 here and a more detailed description on some of the microarchitectures can be found here.
中找到所有英特尔微体系结构上的本机事件的简要说明。
相关:.
我想了解性能事件的含义:dTLB 加载和 dTLB 存储?
A TLB-store 不是写入 到 TLB,它是写入主内存中的虚拟地址,必须 读取一个TLB条目。
所以 TLB-store 是 TLB-reference 由存储操作完成的。
启用虚拟内存后,每次内存访问的虚拟地址都需要在TLB中查找对应的物理地址,并确定访问权限和特权(或在映射无效时抛出异常). dTLB-loads
和 dTLB-stores
事件分别表示对数据存储器加载或存储访问的 TLB 查找。这是这些事件的 perf
定义。但确切的含义取决于微体系结构。
在 Westmere,Skylake、Kaby Lake、Coffee Lake、Cannon Lake(可能还有 Ice Lake),dTLB-loads
和 dTLB-stores
映射到 MEM_INST_RETIRED.ALL_LOADS
和 MEM_INST_RETIRED.ALL_STORES
, 分别。在 Sandy Bridge、Ivy Bridge、Haswell、Broadwell、Goldmont、Goldmont Plus 上,它们分别映射到 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 卷中,其他文档中没有有关性能事件的英特尔资源。)Silvermont 和 Airmont 不支持 dTLB-loads
和 dTLB-stores
事件。
在所有当前的 AMD 处理器上,dTLB-loads
映射到 LsDcAccesses
,不支持 dTLB-stores
。但是,LsDcAccesses
计算加载和存储的 TLB 查找次数。在其他供应商的处理器上,不支持 dTLB-loads
和 dTLB-stores
。
请参阅 perf
核心事件映射到本机事件。
同一程序在不同微体系结构上的dTLB-loads
和dTLB-stores
事件计数可能不同,这不仅是因为微体系结构的差异,而且是因为事件本身的含义不同。因此,即使程序的微体系结构行为在微体系结构上是相同的,事件计数仍然可能不同。可以在 here and a more detailed description on some of the microarchitectures can be found here.
相关: